
《java多线程编程核心技术》读书笔记
GODBAR
暮年诗赋动江关
展开
-
《java多线程编程核心技术》读书笔记3:线程间的通信
第三章:线程间的通信 Wait()方法:线程放弃锁,进入等待状态;Notify()方法:唤起任意一个等待的线程,只唤起一个,而且是随机的。NotifyAll()方法:唤起所有等待的线程,这些线程,争抢(锁)运行的权利;当调用notify()方法时,当前正在执行的线程并不会马上释放锁,而是要等带当前的同步代码块执行完毕才释放持有的锁。 当线程程wait方法状态的时候,调用in原创 2016-09-11 16:52:04 · 531 阅读 · 0 评论 -
《java多线程编程核心技术》读书笔记1
第一章:java多线程技能在学习线程之前我们首先要清楚一下进程的概念: 进程是操作系统结构的基础,是系统进行资源分配的和调度的独立单位。windows上一个运行的word,一个浏览器程序就称之为一个进程。线程:线程是进程的一部分,一个进程由一个或多个线程组成,线程可以理解为进程中独立运行的子任务,如QQ在运行时就有很多子任务同时运行,再如,好原创 2016-09-03 08:15:04 · 1269 阅读 · 0 评论 -
《java多线程编程核心技术》读书笔记2.1
第二章 对象及变量的并发访问本节主要总结了一些synchronized的使用方法:在java中:“非线程安全”的问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全“的问题。synchronized加在方法的前部: synchronized取得的锁都是对象锁,而不是把一段代码或方法当作锁,在线程的执行过程当中,哪个线程先执行了带syn原创 2016-09-03 10:18:22 · 1179 阅读 · 0 评论 -
DCL双检查机制
DCL双检查锁机制双检查锁就是在同步代码块调用之前检查一遍,载再在同步代码块内部再检查一遍。双重保险public class ServiceA { private volatile static ServiceA service; private ServiceA(){ } public static ServiceA getInstance(){ try{原创 2016-09-27 11:17:45 · 1957 阅读 · 1 评论 -
《java多线程编程核心技术》读书笔记6:线程中的异常处理
第七章:拾遗增补SimpleDateFormat这个类主要负责日期的转换与格式化,但是在多线程中,使用此类容易造成数据转换及处理的不准确,因为SimpleDateFormat类并不是线程安全的。在多线程的环境下如果每一个线程都使用相同的SimpleDateFormat对象:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd原创 2016-09-29 15:48:45 · 616 阅读 · 0 评论 -
《java多线程编程核心技术》读书笔记4:Lock的使用
第四章:Lock的使用在Java中,除了通过synchronized关键字进行同步处理意外,Java还提供了另外的方法进行同步,这就是Lock这个类; Lock lock = new ReentrantLock(); lock.lock()方法获得对象锁,lock.unlock()方法释放对象锁。相对于synchronized关键字这个lockz比较原创 2016-09-19 15:36:28 · 807 阅读 · 0 评论 -
《java多线程编程核心技术》读书笔记5:定时器Timer类的使用
第5章:定时器Timer在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一任务,Timer类的主要任务就是设置计划任务,但封装任务 的类是TimerTask,执行计划任务的代码要放到TimerTask的子类中,因为TimerTask是一个抽象类。Timer类的主要方法就是各种重载的schedule方法schedule(TimerTask task,原创 2016-09-26 19:02:16 · 690 阅读 · 0 评论 -
《java多线程编程核心技术》读书笔记2.2:volatile关键词
第二章 对象及变量的并发访问在我们讲解volatile这个关键词时,我们首先要,了解一下变量在内存中工作的过程:java程序在运行的过程当中有主内存和线程内存之分:程序在启动的时候会将所有的变量加载到主内存当中,线程在运行时有一下工作要做:read和load阶段:线程从主存复制变量到当前线程工作内存use和asign阶段:执行代码,改变共享变量的值;store和writ原创 2016-09-11 16:04:19 · 681 阅读 · 0 评论