java并发编程

105 阅读1分钟

基本概念

程序:一组计算机能够识别和执行的指令。
进程:程序关于某数据集合上的一次运行活动。
线程:进程中一个单一顺序的控制流,一个进程中可有多个线程,每条线程并行执行不同的任务。
多核cpu:多核心cpu,核心是cpu的重要组成部分,现在的cpu一般为单个芯片中集成多个cpu核心(4核,8核等)。
进程和线程的区别:1、每个进程都拥有自己的一整套变量,而线程则共享数据。
并发:一个cpu核心在一段时间间隔内执行多个任务。
并行:多个cpu核心在同一时刻执行多个任务。
同步:进程执行请求时,需要等待请求的返回信息才能继续执行,否则会阻塞。
异步:进行执行请求时,不用等待请求的返回信息,而是继续执行,当请求信息返回时,系统会通知进程处理。
多线程的作用:让方法执行变为异步;利用多核cpu提高运行效率。

线程创建

线程状态

操作系统层面:1、初始状态:语言层面创建线程对象,未与操作系统线程关联;2、可运行状态:线程与操作系统线程关联,等待CPU调度器执行;3、运行状态:线程获得CPU时间片,运行中的状态;4、阻塞状态:cpu时间片用完,导致上线文切换;5、终止状态:线程执行结束。

5e8e2165e5984a108db3f8705b8fad49.png java API层面:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED

5e8e2165e5984a108db3f8705b8fad49.png

线程方法

interrupt: