感觉自己JAVA基础太差了,重新看一遍,已思维导图的方式记录下来
多线程初级
进程
独立性
拥有独立资源
独立的地址
无授权其他进程无法访问
动态性
与程序的区别是:进程是动态的指令集合,而程序是静态的指令集合
加入时间概念
有自己的生命周期和不同的状态
并发性
多个进程可以在单核处理器并发执行
多个进程互不影响
和并行的区别:并行是同一时刻多个进程在多个处理器上同时执行
而并发是指在同一时刻只能执行一条指令,但互相切换迅速,宏观上看是执行多个指令
线程
线程相对于进程如同进程相对于操作系统
多个线程共享同一进程的资源
轻量级进程
性能高,创建容易
应用:一个浏览器同时下载多个图片、一个服务器同时处理多个请求
JAVA多线程
创建
继承Thread
实现Runnable接口(推荐)
生命周期
新建
new 一个Thread
就绪
执行start方法
运行
开始执行run方法
阻塞
进入阻塞
调用sleep方法主动放弃处理器资源
想获得一个同步检测器,但改同步检测器被其他资源所占有
调用一个阻塞式的IO方法,在该方法返回前,线程阻塞
等待某个notify通知
调用suspend挂起
解除阻塞
调用sleep超过指定时间
调用阻塞式IO方法已返回
成功获得了试图要得到的同步检测器
等待某个通知时,其他线程发出了通知
处于挂起的线程调用了resume方法
死亡
run方法结束
程序抛出一个未捕获的异常
调用stop方法
JAVA思维导图系列:多线程初级,布布扣,bubuko.com
JAVA思维导图系列:多线程初级