标签:不同 setdaemon 就是 优先 isa 竞争 代码 对象 数据
继承Thread类
步骤:
1,编写线程类,继承Thread
2,重写public void run()方法,他的方法体就是这个线程的线程体(这个线程要完成的任务)
3,常见线程类对象
4,启动:必须调用start()
实现Runnable接口
1,步骤
1,编写线程类,实现Runnable接口
2,重写public void run()方法,它的方法体就是这个线程的线程体(这个线程要完成的任务)
3,创建线程类对象
4,启动:必须调用start()
2、启动方式不同
3、继承的方式,在实现共享数据时,可能需要静态的
实现的方式,只要共享同一个Runnable实现类的对象即可。
4、继承的方式,选择锁时this可能不能用,
实现的方式,选择锁时this可以用。
(2)run():必须重写
(3)static void sleep(时间):线程休眠
(4)void join():加塞,这句代码出现在哪个线程(例如:A)的线程体中,调用join()方法的线程对象(例如:B)会将A阻塞,只有B结束,A才能恢复。
void join(时间):加塞,这句代码出现在哪个线程(例如:A)的线程体中,调用join()方法的线程对象(例如:B)会将A阻塞,时间到后,A才能恢复。
(5)static void yield():这句代码出现在哪个线程(例如:A)的线程体中,当A线程运行到这句yield()代码时,会暂停运行,让出CPU,重新开始和其他线程竞争CPU。
(6)getName()/setName():设置和获取线程名称
(7)getPriority()/setPriority():设置和获取线程的优先级。优先级必须在[1,10]之间。有三个常量:MAX_PRIORITY(10),MIN_PRIORITY(1),NORM_PRIORITY(5)。优先级时影响使用了抢占式策略的调度机制时CPU调度的概率。
(8)boolean isAlive():判断某个线程是否处于活动状态(已启动还未死亡)。
(9)void setDaemon(boolean):设置某个线程是否为守护线程(守护线程为其他非守护服务的,当其他非守护线程死亡了,它自动死亡)。
(10)static Thread currentThread():获取当前线程对象。
标签:不同 setdaemon 就是 优先 isa 竞争 代码 对象 数据
原文地址:https://www.cnblogs.com/Objecting/p/12229875.html