机器执行的最小单位,充分利用cpu资源并行处理任务。多核同时处理多个任务,单核充分利用cpu执行快的优点。
创建执行线程顾名思义 创建一个Thread实例,这个类的实例实现runable方法。所以要执行一个线程需要先创建一个线程,并定义这个线程需要执行的内容 (实现runnable 的run方法)。准备就绪后 start 这个线程开始工作。
Thread类 和runnable 接口的关系
public
class Thread implements Runnable{
private Runnable target;
......
@Override
public void run() {
if (target != null) {
target.run();
}
}
......
}
Thread类是Runnable接口的扩充 最终线程执行的都是run方法的实现。
(这里有点像ApplicationContext 跟 BeanFactotry 的关系也是功能的增强)
线程安全当一个任务需要多线程并行执行并且有共享资源需要修改访问,就需要考虑共享问题。即并行中的串行。
解决思路 1 加锁串行执行 (锁的选择? 锁的范围?) 2原子 *** 作cas。
线程生命周期五种状态
新建状态(New) 即 new Thread
就绪状态(Runnable)start 告诉cpu 准备就绪
运行状态(Running) cpu切换至本线程执行
阻塞状态(Blocked) 1 加锁竞争阻塞 2等待资源阻塞
死亡状态(Dead) 线程执行完毕or异常退出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)