1.进程与线程
1.1进程
定义:
- 程序(任务)的执行过程——是一个动态的概念
- 持有资源(共享内存,共享文件)和线程
1.2线程
定义:
- 线程是系统中最小的执行单元
- 同一进程中有多个线程
- 线程共享进程的资源
线程的交互(通信):
- 互斥
- 同步
2.Java中的线程
实现方法:
java.lang包——
- 继承class Thread
- 实现interface Runnable
关键:run()方法
线程停止:
使用结束标志;1.不要使用stop方法。2.不要使用interrupt方法。
使线程正常退出,而不会戛然而止。
3.线程的交互
争用条件(Race Condition)
互斥:synchronized
同步:wait/notifyAll
建议拓展:
1.Java Memory Mode
JMM描述了Java线程如何通过内存进行交互
happens-before
synchronized,volatile&final
2.Locks&Condition
Java锁机制的高级实现
java.util.concurrent.locks
3.线程安全性
原子性与可见性
java.util.concurrent.atomic
synchronized&volatile
DeadLocks
4.多线程编程常用的交互模型
Producer-Consumer模型
Read-Write Lock模型
Future模型
Worker Thread模型
5.Java5中并发变成工具
java.util.concurrent
线程池ExecutorService
Callable&Future
BlockingQueue