线程

大纲:

  1. 线程的定义、开启、状态、结束
  2. 线程的类型与优先级:Runnable与Callable
  3. 线程的竞争
  4. 线程的协作

1.1 线程基本流程(定义 开启 结束)

1)实现Runnable接口->重写run方法
2)创建一个Ruannable对象
3)创建一个Thread对象thread
4)thread.start()

线程基本流程

1.2 线程的状态

状态 改变状态的代码
new (新创建) 线程被创建时的状态
Ruannable(可运行) Thread.start()
Running(执行) Ruannable.run()
Blocked(被阻塞) Thread.sleep() Object.wait()
waiting(等待) wait()
terminated(终止) run方法执行完
线程基本状态图
线程状态图

1.3 线程的结束

正常结束:执行完run()方法
非正常结束:利用条件结束run()方法——interrupt状态、标志位

设置标志位

2.1 线程类型

无返回值为实现Runnable接口
有返回值为实现Callable接口

2.2 竞争

对共享的代码块添加synchronized关键字和使用lock类

竞争

原子操作——不被线程调度中断

Paste_Image.png

2.3 协作

使用wait()和notify()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容