天天看点

JAVA思维导图系列:多线程0基础进程线程JAVA多线程生命周期

感觉自己JAVA基础太差了,又一次看一遍,已思维导图的方式记录下来

多线程0基础

JAVA思维导图系列:多线程0基础进程线程JAVA多线程生命周期

进程

独立性

拥有独立资源

独立的地址

无授权其它进程无法訪问

动态性

与程序的差别是:进程是动态的指令集合,而程序是静态的指令集合

增加时间概念

有自己的生命周期和不同的状态

并发性

多个进程能够在单核处理器并发运行

多个进程互不影响

和并行的差别:并行是同一时刻多个进程在多个处理器上同一时候运行

而并发是指在同一时刻仅仅能运行一条指令,但互相切换迅速,宏观上看是运行多个指令

线程

线程相对于进程如同进程相对于操作系统

多个线程共享同一进程的资源

轻量级进程

性能高,创建easy

应用:一个浏览器同一时候下载多个图片、一个server同一时候处理多个请求

JAVA多线程

创建

继承Thread

实现Runnable接口(推荐)

生命周期

新建

new 一个Thread

就绪

运行start方法

执行

開始运行run方法

堵塞

进入堵塞

调用sleep方法主动放弃处理器资源

想获得一个同步检測器,但改同步检測器被其它资源所占有

调用一个堵塞式的IO方法,在该方法返回前,线程堵塞

等待某个notify通知

调用suspend挂起

解除堵塞

调用sleep超过指定时间

调用堵塞式IO方法已返回

成功获得了试图要得到的同步检測器

等待某个通知时,其它线程发出了通知

处于挂起的线程调用了resume方法

死亡

run方法结束

程序抛出一个未捕获的异常

调用stop方法