Java并发编程从入门到精通-总纲

总纲:
 Thread;
 Thread安全;
 线程安全的集合类;
 多线程之间交互:线程阀;
 线程池;
 Fork/Join;

第2章:认识Thread:
 线程实现的三种方法;
 Thread里面的属性和方法;
 线程的中断机制;
 线程的生命周期;
 守护线程;
 线程组;
 当前线程的副本:ThreadLocal;
 线程异常的处理;

第3章:Thread安全:
 Java内存模型与多线程;
 线程不安全和线程安全;
 隐式锁synchronized;
 显式锁Lock和ReentrantLock;
 显式锁ReadWriteLock和ReentrantReadWriteLock;
 显式锁StampedLock;
 死锁;
 volatile关键字;
 原子变量:atomic;
 单例模式;

第4章:线程安全的集合类:
 java.util.Hashtable;
 java.util.concurrent.ConcurrentHashMap;
 java.util.concurrent.CopyOnWriteArrayList;
 java.util.concurrent.CopyOnWriteArraySet;
 CopyOnWrite机制;
 Vector;
 StringBuilder和StringBuffer;

第5章:多线程之间交互:线程阀:
 阻塞队列BlockingQueue;
 数组阻塞队列ArrayBlockingQueue;
 链表阻塞队列LinkedBlockingQueue;
 优先级阻塞队列PriorityBlockingQueue;
 延时队列DelayQueue;
 同步队列SynchronousQueue;
 链表双向阻塞队列LinkedBlockingDeque;
 链表传输队列LinkedTransferQueue;
 同步计数器CountDownLatch;
 抽象队列化同步器AbstractQueuedSynchronizer;
 同步计数器Semaphore;
 同步计数器CyclicBarrier;

第6章:线程池:
 什么是线程池;
 newSingleThreadExecutor的使用;
 newCachedThreadPool的使用;
 newFixedThreadPool的使用;
 线程池的好处;
 线程池的工作机制及其原理;
 自定义线程池和ExecutorService;
 线程池在工作中的错误使用;

第7章:Fork/Join框架:
 Future任务机制和FutureTask;
 什么是Fork/Join框架;
 认识Fork/Join的JDK里面的家族;
 Fork/Join框架的实现原理;
 异常处理机制和办法;
 Fork/Join模式优缺点及其实际应用场景;

线程实战经验;

一开始是隐式锁:synchronized;然后出现显示锁:ReentrantLock系列接口及实现类;然后出现线程池,
搭配阻塞队列(阻塞队列提供任务,就是要实现的具体的业务逻辑;线程池负责提供线程执行这些任务);
然后又出现悬锁(synchronized的加强版,好像比显式锁更好用);

原文地址:https://www.cnblogs.com/kehuaihan/p/8458157.html

时间: 2024-11-09 14:02:23

Java并发编程从入门到精通-总纲的相关文章

Java并发编程从入门到精通 张振华.Jack --我的书

[当当.京东.天猫.亚马逊.新华书店等均有销售] 目 录 第一部分:线程并发基础 第1章 概念部分   1 1.1 CPU核心数.线程数 (主流cpu,线程数的大体情况说一下) 1 1.2 CPU时间片轮转机制 2 1.3 什么是进程和什么是线程 4 1.4 进程和线程的比较 5 1.5 什么是并行运行 7 1.6 什么是多并发运行 8 1.7 什么是吞吐量 9 1.8  多并发编程的意义及其好处和注意事项 10 1.9  分布式与并发运算关系 11 1.10 Linux和Window多并发可以

Java并发编程从入门到精通 张振华.Jack --【吐血推荐、热销书籍】

[当当.京东.天猫.亚马逊.新华书店等均有销售]目 录 第一部分:线程并发基础 第1章 概念部分   1 1.1 CPU核心数.线程数 (主流cpu,线程数的大体情况说一下) 1 1.2 CPU时间片轮转机制 2 1.3 什么是进程和什么是线程 4 1.4 进程和线程的比较 5 1.5 什么是并行运行 7 1.6 什么是多并发运行 8 1.7 什么是吞吐量 9 1.8  多并发编程的意义及其好处和注意事项 10 1.9  分布式与并发运算关系 11 1.10 Linux和Window多并发可以采

Java并发编程从入门到精通 - 第6章:线程池

1.什么是线程池(为什么使用线程池):2.Executor框架介绍:  Java 5中引入的,其内部使用了线程池机制,在java.util.cocurrent 包下,通过该框架来控制线程的启动.执行和关闭(使用该框架来创建线程池),可以简化并发编程的操作:  Executor框架包括:线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等:  ExecutorService接口继承自Executor接口,

Java并发编程从入门到精通 - 第2章:认识Thread

线程实现的三种方法:1.三种实现方式的简记: 继承Thread类,重写run()方法: 实现Runnable接口,重写run()方法,子类创建对象并作为Thread类的构造器参数: 实现Callable接口,重写call()方法,子类创建对象并作为FutureTask类的构造器参数,FutureTask类创建对象并作为Thread类的构造器参数:2.三种实现方法的比较: 继承Thread类:因为是单继承,所以扩展性不好: 实现Runnable接口:接口可以多重实现:并且还可以再继承一个类:扩展性

Java并发编程从入门到精通 - 第3章:Thread安全

Java内存模型与多线程: 线程不安全与线程安全: 线程安全问题阐述:  多条语句操作多个线程共享的资源时,一个线程只执行了部分语句,还没执行完,另一个线程又进来操作共享数据(执行语句),导致共享数据最终结果出现误差:所以就是看一个线程能否每次在没有其他线程进入的情况下操作完包含共享资源的语句块,如果能就没有安全问题,不能就有安全问题: 如何模拟多线程的安全问题:  用Thread.sleep()方法模拟: 放在哪:放在多线程操作共享数据的语句块之间(使正在运行的线程休息一会,让其他线程执行,就

Java并发编程从入门到精通 - 第5章:多线程之间的交互:线程阀

详述: 线程阀是一种线程与线程之间相互制约和交互的机制: 作用:http://wsmajunfeng.iteye.com/blog/1629354阻塞队列BlockingQueue:数组阻塞队列ArrayBlockingQueue:链表阻塞队列LinkedBlockingQueue:优先级阻塞队列PriorityBlockingQueue:延时队列DelayQueue:同步队列SynchronousQueue:链表双向阻塞队列LinkedBlockingDeque:链表传输队列LinkedTra

Java并发编程从入门到精通 - 第7章:Fork/Join框架

1.综述:化繁为简,分而治之:递归的分解和合并,直到任务小到可以接受的程度:2.Future任务机制:  Future接口就是对于具体的Runnable或者Callable任务的执行结果进行取消.查询是否完成.获取结果:必要时可以通过get方法获取执行结果,该方法会阻塞直到任务会返回结果:也就是说Future接口提供三种功能:判断任务是否完成.能够中断任务.能够获取任务执行结果:  Future接口里面的常用方法:3.FutureTask:  FutureTask类是Future接口唯一的实现类

Java网络编程从入门到精通(4):DNS缓存

在通过DNS查找域名的过程中,可能会经过多台中间DNS服务器才能找到指定的域名,因此,在DNS服务器上查找域名是非常昂贵的操作.在Java中为了缓解这个问题,提供了DNS缓存.当InetAddress类第一次使用某个域名(如www.csdn.net)创建InetAddress对象后,JVM就会将这个域名和它从DNS上获得的信息(如IP地址)都保存在DNS缓存中.当下一次InetAddress类再使用这个域名时,就直接从DNS缓存里获得所需的信息,而无需再访问DNS服务器. DNS缓存在默认时将永

Java网络编程从入门到精通 (9):使用isXxx方法判断地址类型

IP地址分为普通地址和特殊地址.在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址. 一.isAnyLocalAddress方法 当IP地址是通配符地址时返回true,否则返回false.这个通配符地址对于拥有多个网络接口(如两块网卡)的计算机非常拥有.使用通配符地址可以允许在服务器主机接受来自任何网络接口的客户端连接.IPv4的通配符地址是0.0.0.0.IPv6的通配符地址是0:0:0:0:0