码迷,mamicode.com
首页 > 编程语言 > 详细

多线程的相关概念

时间:2020-01-22 23:32:11      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:不同   setdaemon   就是   优先   isa   竞争   代码   对象   数据   

继承Thread类

步骤:

1,编写线程类,继承Thread

2,重写public void run()方法,他的方法体就是这个线程的线程体(这个线程要完成的任务)

3,常见线程类对象

4,启动:必须调用start()

实现Runnable接口

1,步骤

1,编写线程类,实现Runnable接口

2,重写public void run()方法,它的方法体就是这个线程的线程体(这个线程要完成的任务)

3,创建线程类对象

4,启动:必须调用start()

两种方式的区别

1、继承的方式有单继承的限制,实现的方式可以多实现

2、启动方式不同

3、继承的方式,在实现共享数据时,可能需要静态的

实现的方式,只要共享同一个Runnable实现类的对象即可。

4、继承的方式,选择锁时this可能不能用,

实现的方式,选择锁时this可以用。

其他方法

(1)启动:start(),每一个线程对象只能调用一次

(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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!