感觉自己JAVA基础太差了,重新看一遍,已思维导图的方式记录下来
多线程初级

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