java并发编程视频教程java7并发编程实战手册怎么样

java并发编程视频教程java7并发编程实战手册怎么样

描述

java并发编程视频教程java7并发编程实战手册怎么样

这本书没有kindle版本。

java并发编程视频教程图片1

《Thinking in Java》

《Effective Java》

java并发编程视频教程图片2

《从Paxos到ZooKeeper:分布式一致性原理与实践》

《大型网站技术架构核心原理与案例分析》

《Java并发编程实战》

《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》

我认为这几本都挺经典

多线程共享资源,比如一个对象的内存,怎样保证多个线程不会同时访问(读取或写入)这个对象,这就是并发最大的难题,因此产生了 互斥机制(锁)。

java并发编程视频教程图片3

using the same monitor lock.

获取锁后,该线程本地存储失效,临界区(就是获得锁后释放锁之前 的代码区)从主存获取数据,并在释放锁后刷入主存。

互斥:

保证临界区代码线程间互斥。

synchronized实现同步的基础:

java中每个对象都可以作为锁

一个任务可以多次获得锁,比如在一个线程中调用一个对象的 synchronized标记的方法,在这个方法中调用第二个synchronized标记的方法,然后在第二个synchronized方法中调用第三个synchronized方法。一个线程每次进入一个synchronized方法中JVM都会跟踪加锁的次数,每次+1,当该这个方法执行完毕,JVM计数-1;当JVM计数为0时,锁完全被释放,其他线程可以访问该变量。

在使用并发时将对象的field设为private 很重要!尤其是使用static变量(evil static variable) 使用 Lock lock =new ReentrantLock()的问题是代码不够优雅,增加代码量;我们一般都是使用synchronized实现互斥机制。但是1.当代码中抛出异常时,显示锁的finally里可以进行资源清理工作。2.ReentrantLock还给我们更细粒度的控制力



留言