多线程并发编程

1.线程和进程的概念

进程是一个执行的程序,进程里面有多个线程,线程是进程中负责执行的程序的一执行单元,线程本身是依靠程序进行运行的,线程是程序中一个顺序控制流。
线程分为单线程和多线程。 多线程能更好利用cpu资源。
以前单进程的,时间片切换

多线程实现方式: 继承thread,实现runnable。
ExecutorService
CallableFuture 带返回值的多线程,方法执行完给一个返回值。

2. 多线程的生命周期

初始状态 -- 可运行状态 -- 运行中 -- 结束

运行中通过yield或时间片轮询变成可运行状态

运行中 通过synchronized变成锁定状态
运行中通过wait 进入等待队列
等待队列通过notify notifyall wait时间执行完 等唤醒一个锁定状态的线程,拿到锁的标记,进入可运行状态

运行中通过sleep,join让当前进程进入阻塞状态
阻塞状态通过sleep结束,join线程执行完变成可运行状态

原文地址:https://www.cnblogs.com/james0/p/9280363.html