目录 start
目录 end
|2018-07-08| 码云 | CSDN | OSChina
线程的基础学习
TODO
- [ ] 线程的多种创建方式
- [ ] 线程池的创建方式
- [ ] 线程的状态转化
基础
线程的意义
线程的生命周期
创建
- 创建线程有三种创建方式: 继承,实现接口,实例化匿名内部方法。-> 示例代码
查看Thread类源码 看看Thread类源码,捋清Runnable,target,run,start关系
- Runnable是一个接口
- target是Thread类中类型为Runnable,名为target的属性
- run是Thread类实现了Runnable的接口,重写的方法。
- start是启动线程的方法
- 在Thread类中,调用关系为:start->start0->run->target.run
Thread类的run方法源码
public void run() {
if (target != null) {
target.run();
}
}
Thread类的target属性
/* What will be run. */
private Runnable target;
- target属性由
private void init(ThreadGroup g, Runnable target, String name,long stackSize, AccessControlContext acc)
方法初始化。- init方法在Thread类的构造方法里被调用
控制
- 当调用
Thread.join()
时,调用线程将阻塞,直到目标线程完成为止。
销毁
线程的优先级
多个线程同时运行时,由线程调度器来决定哪些线程运行,哪些等待以及线程切换的时间点. 由于各个操作系统的线程调度器的实现各不相同, 所以依赖JDK来设置线程优先级策略是错误和非平台可移植性的.