Java Concurrency
文章平均质量分 80
千霜
未来的码农
展开
-
java并发 死锁
参考链接:http://tutorials.jenkov.com/java-concurrency/deadlock.htmlhttp://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html学习小结线程死锁并发系统中经常需要对资源加锁,如果多个线程在同一时间对相同资源加锁时可能会发生死锁。但是如果多个线程...原创 2018-08-20 21:22:43 · 229 阅读 · 0 评论 -
java监视器机制与线程信号
先说说线程的信号,不同线程之间可以通过共享变量和信号来沟通。比如一个消费者和一个生产者,生产者生产数据给消费者使用。如果通过一个共享变量来标识生产者是否已经生产了一个数据可供消费者使用,那么在未有数据被生产的时候,消费者需要在线程的循环语句中检测该共享变量,一直循环等待直到有了数据可使用。这种交流方式叫做忙等待,忙等待是很浪费cpu时间的。因此可以通过信号来解决,如果没有数据,则消费者阻塞,直...原创 2018-08-20 18:58:17 · 1730 阅读 · 0 评论 -
线程池&阻塞队列实现--笔记
参考链接:http://tutorials.jenkov.com/java-concurrency/blocking-queues.htmlhttp://tutorials.jenkov.com/java-concurrency/thread-pools.html阻塞队列阻塞队列是一个可以阻塞线程的队列。当你尝试向空队列中弹出元素时,会被阻塞,直到入队一个新元素。当向满队列写入...原创 2018-08-23 08:58:42 · 3887 阅读 · 0 评论 -
java Synchronized Volatile
参考链接:http://tutorials.jenkov.com/java-concurrency/synchronized.htmlhttp://tutorials.jenkov.com/java-concurrency/volatile.htmlhttps://blog.csdn.net/jdbdh/article/details/81839225https://blog.cs...原创 2018-08-19 22:57:37 · 163 阅读 · 0 评论 -
Read / Write Locks in Java---笔记
链接:http://tutorials.jenkov.com/java-concurrency/read-write-locks.html以下对链接中的代码加了一些注释,对canGrantReadAccess函数添加了注释。java.util.concurrent包中提供了读写锁的实现。使用读写锁,同一时间中多个线程可以同时读同一资源,但是如果一个线程在写资源时,其他读和写线程都不能使用资...原创 2018-08-22 15:49:14 · 160 阅读 · 0 评论 -
java内存模型与硬件内存架构
链接:http://tutorials.jenkov.com/java-concurrency/java-memory-model.html学习小结java虚拟机和java api构成一个的平台,屏蔽之下的操作系统。而java虚拟机是一个计算机的模型,自然包括他独特的内存模型。1、java内存模型从上面可以看出,java内存模型包括栈区、堆区。但是不仅仅这些,还包括方法区和...原创 2018-08-19 19:33:37 · 1363 阅读 · 2 评论 -
线程安全与资源共享
链接:http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.htmlhttp://tutorials.jenkov.com/java-concurrency/thread-safety.htmlhttp://tutorials.jenkov.com/java-concurre...原创 2018-08-19 14:18:35 · 196 阅读 · 0 评论 -
java并发
链接:http://tutorials.jenkov.com/java-concurrency/index.html学习小结早期计算机只有一个cpu,且一次只能运行一个程序。后来出现了多任务的技术,意味着计算机可以在“同一时间”内运行多道程序(任务)。但它不是真正的同时运行,只是cpu被多道程序共享而已,cpu在程序之间依照一定方式轮流使用,给人一种同时运行的错觉。后来又出现多线程,多...原创 2018-08-18 14:07:51 · 137 阅读 · 0 评论 -
java Reentrancy可重入
synchronized声明的内部锁是可重入的,并且可重入是基于每一个线程获得一次锁,而不是每一次调用获得一次锁。暂时没听懂没关系,先看看可重入是怎么实现的。可重入是通过请求计数值和拥有者线程实现的。当计数值为0时,线程进入synchronized块会获得锁,计数值加一,设置该线程为拥有者线程。但其他线程尝试加锁时会阻塞。可重入意味着该拥有线程未释放锁时可再次进入同步块(synchroni...原创 2018-08-17 11:39:18 · 336 阅读 · 0 评论