Java多线程知识点笔记(1)
1.进程
程序(任务)的执行过程 qq eclipse(动态性,运行之后才成为进程)
持有资源(共享文件,共享内存)和线程(资源和线程的载体)
2.线程
eclipse 源代码文本编辑,源代码编译,语法校验
qq 文字聊天 文件传输
*线程是系统中最小的执行单元
*同一进程中有多个线程
*线程共享进程的资源
3.线程的交互
互斥(竞争)与同步(协作)
3.java对线程的支持
java.lang包
class:Thread
interface:Runnable
Thread和Runnable有一个共通的方法 public void run()
4.stop() 不正确的停止方法
while循环判断停止标志,Thread.yelid(),退出旗标
interrupt() 不正确
5.争用条件
当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象被称为争用个条件。(分时抢占)
6. 互斥与同步
synchronized加锁
同步的实现:wait()/notify()/notifyAll() 是Object的成员函数
7.Wait Set 线程的休息室
wai() 把线程放入休息室
notify() 随机唤醒一个
notifyAll() 唤醒所有
8.Java Memory Mode(JMM)
9.Locks&Condition
10.线程安全性
原子性与可见性
java.util.concurrent.atomic
synchronized&volatile
DeadLocks
11.多线程编程常用的交互模型
Producer-Consumer模型
Read-Write Lock模型
Future模型
Worker Thread模型
12.java5中并发编程工具
java.util.concurrent
线程池ExecutorService
Callable&Future
Blocking&Queue