摘要: 文地址:jenkov作者: Jakob Jenkov译者:长源校对:方腾飞java线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行... 阅读全文
posted @ 2015-05-14 16:28 techfox 阅读(163) 评论(0) 推荐(0)
摘要: 原文链接作者:Jakob Jenkov译者:刘晓日校对:丁一重入锁死与java中的死锁非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是... 阅读全文
posted @ 2015-05-14 16:24 techfox 阅读(498) 评论(0) 推荐(0)
摘要: 原文链接作者:Jakob Jenkov译者:微凉校对:丁一相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些。假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时... 阅读全文
posted @ 2015-05-14 16:18 techfox 阅读(241) 评论(0) 推荐(0)
摘要: 原文链接作者:Jakob Jenkov译者:申章校对:丁一java中的锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂。因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱sync... 阅读全文
posted @ 2015-05-14 10:52 techfox 阅读(180) 评论(0) 推荐(0)
摘要: 原文链接 作者:Jakob Jenkov译者:余绍亮 校对:丁一嵌套管程锁死类似于死锁, 下面是一个嵌套管程锁死的场景线程1获得A对象的锁。线程1获得对象B的锁(同时持有对象A的锁)。线程1决定等待另一个线程的信号再继续。线程1调用B.wait(),从而释放了B对象上的锁,但仍然持有对象A的锁。线程... 阅读全文
posted @ 2015-05-14 09:41 techfox 阅读(360) 评论(0) 推荐(0)