Java多线程基础

来源:互联网 发布:神界原罪2低配优化 编辑:程序博客网 时间:2024/06/06 16:46

Java多线程学习

[参考学习视频](http://www.imooc.com/learn/202)

基本术语

进程:程序(任务)的执行过程(动态性的),持有资源(共享内存,共享文件)和线程 线程:是系统中最小的执行单元      同一个进程中可以有多个线程      线程共享进程的资源线程的交互:互斥、同步

线程交互

争用条件:当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,           从而导致数据被破坏(corrupted),这种现象被称为争用条件。互斥:    同一时间只能有一个线程访问临界区          通过加锁来实现: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

感谢慕课网: Arthur老师的精彩视频讲解