In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
本篇内容主要讲解"Java中怎么创建自己的线程对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java中怎么创建自己的线程对象"吧!
默认情况下,主线程和垃圾回收线程都是由系统创建的,但是我们需要完成自己的功能----创建自己的线程对象。
* java将线程面向对象了,形成的类就是Thread,在Thread类内部执行任务的方法叫run()
*
* 注意:如果想让run作为任务区,必须让他去被自动调用.我们通过执行start()方法,来开启线程,继而实现run方法的自动调用.
## 直接使用Thread创建线程对象
// //分析:由于我们实现的实际功能Thread类是决定不了的,所以没有办法将我们的功能放入Thread的run方法里
// //所以Thread的run 方法是一个空方法.如果我们想实现自己的功能,可以写Thread类的子类,重写run方法
当我们手动调用run的时候,他失去了任务区的功能,变成了一个普通的方法.
//当run作为一个普通方法时,内部对应的线程跟调用他的位置保持一致.
## 锁的条件:
* 1.锁必须是对象 普通的对象/this/字节码文件
* 2.要被所有的线程共享
*
* 注意:字节码文件的使用范围太大,一般不建议使用.
空唤醒
## Lock锁
使用步骤
1.创建ReentrantLock lock = new ReentrantLock();对象,需要注意的是多个线程必须使用同一个
2.把之前的synchronized(锁){ 用lock.lock()替换
3.把} 用lock.unlock();替换
好处
1.不要考虑锁对象
2.代码看起来更加简洁了
3.可以使用try..catch..finaly把lock.unlock放到finaly中,好处是如果该线程发生了异常,照样可以释放锁
## 比较synchronized和Lock
* 1.synchronized:从jdk1.0就开始使用的同步方法-称为隐式同步
* synchronized(锁对象)
* {//获取锁 我们将锁还可以称为锁旗舰或者监听器
同步的代码}//释放锁
* 2.Lock:从jdk1.5开始使用的同步方法-称为显示同步
* 原理:Lock本身是接口,要通过他的子类创建对象干活儿
* 使用过程:
* 首先调用lock()方法获取锁
* 进行同步的代码块儿
* 使用unlock()方法释放锁
* 使用的场景:
* 当进行多生产者多消费者的功能时,使用Lock,其他的都使用synchronized
* 使用效率上:Lock高于synchronized
## 多线程的单例
//饿汉式,由于公共方法中只有一行公共的代码,所以不会产生线程安全问题
class SingleInstance1{
private static final SingleInstance1 s = new SingleInstance1();
private SingleInstance1() {
}
public static SingleInstance1 getInstance() {
return s;
}
}
//懒汉式,
class SingleInstance2{
private static SingleInstance2 s = null;
private SingleInstance2() {
}
public static SingleInstance2 getInstance() {
if (s == null) {//尽量减少线程安全代码的判断次数,提高效率
synchronized (SingleInstance2.class) {//使用同步代码块儿实现了线程安全
if (s == null) {
s = new SingleInstance2();
}
}
}
return s;
}
## 线程停止
1.通过一个标识结束线程
2.调用stop方法---因为有固有的安全问题,所以系统不建议使用.
3.调用interrupt方法----如果目标线程等待很长时间(例如基于一个条件变量),则应使用 interrupt 方法来中断该等待。
到此,相信大家对"Java中怎么创建自己的线程对象"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.