本文是学习网络上的文章时的总结,感谢大家无私的分享。
Java提供另外的机制用来同步代码块。它比synchronized关键字更加强大、灵活。Lock
接口比synchronized关键字提供更多额外的功能。在使用Lock时需要注意的是要释放Lock锁。
package chapter2;
import java.util.concurrent.locks.Lock;
import ...
分类:
编程语言 时间:
2014-09-16 20:39:31
阅读次数:
187
本文是学习网络上的文章时的总结,感谢大家无私的分享。
每个方法声明为synchronized关键字是一个临界区,Java只允许一个对象执行其中的一个临界区。
静态方法有不同的行为。只有一个执行线程访问被synchronized关键字声明的静态方法,但另一个线程可以访问该类的一个对象中的其他非静态的方法。 你必须非常小心这一点,因为两个线程可以访问两个不同的同步方法,如果其中一个是静态的而另一...
分类:
编程语言 时间:
2014-09-15 17:52:06
阅读次数:
186
本文是学习网络上的文章时的总结,感谢大家无私的分享。
当你使用synchronized关键字来保护代码块时,你必须通过一个对象的引用作为参数。通常,你将会使用this关键字来引用执行该方法的对象,但是你也可以使用其他对象引用。通常情况下,这些对象被创建只有这个目的。比如,你在一个类中有被多个线程共享的两个独立属性。你必须同步访问每个变量,如果有一个线程访问一个属性和另一个线程在同一时刻访问另一个...
分类:
编程语言 时间:
2014-09-15 17:49:49
阅读次数:
164
本文是学习网络上的文章时的总结,感谢大家无私的分享。
其实很简单,大家看代码就知道是神马意思了。
package chapter2;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
public class EventStorage {
private int maxSize;
pr...
分类:
编程语言 时间:
2014-09-15 17:47:29
阅读次数:
157
资源管理的测试
先摆上昨天测试用的栗子
import java.util.concurrent.Semaphore;
public class BoundedBuffer {
private final Semaphore availableItems, availableSpaces;
private final E[] Items;
private int putPosition...
分类:
编程语言 时间:
2014-09-15 17:46:19
阅读次数:
261
标题起得有些奇怪,好端端的为什么要替换wait和notify?在论坛看到了这么一段:>14.为什么wait(),notify()和notifyAll()必须在同步方法或者同步块中被调用?当一个线程需要调用对象的wait()方法的时候,这个线程必须拥有该对象的锁,接着它就会释放这个对象锁并进入等待状态..
分类:
其他好文 时间:
2014-09-14 02:35:57
阅读次数:
464
避免热点域
比如一个hashmap的size。优化的方法就是加一个计数器。但是对于ConcurrentHashMap来说。当并发的对其进行操作时,每次put和remove都需要改变这个计数器。所以在这个类里这个计数器就被叫做热点域,是可伸缩性的瓶颈。所以这里采取避免热点域的方法是对于应用锁分段的散列桶,ConcurrentHashMap中的size将对每个分段进行枚举并将每个分段的元素数量相加。...
分类:
编程语言 时间:
2014-09-13 09:24:34
阅读次数:
231
线程是指程序在执行过程中,能够执行程序代码的一个执行单元。在Java语言中,线程有四种状态:运行、就绪、挂起、结束。
进程是指一段正在执行的程序。而线程有时候也被称为轻量级进程,是程序执行的最小单元,一个进程可以拥有多个线程...
分类:
编程语言 时间:
2014-09-11 23:59:13
阅读次数:
579
阻塞
非竞争的同步可以完全在JVM中处理,竞争的同步则可能需要操作系统的介入,从而增加开销。当在锁上发生竞争时,竞争失败的线程肯定会阻塞。JVM在实现阻塞行为时,可以采用自旋等待,就是通过循环不断的尝试获取锁。直到成功。或者通过操作系统挂起被阻塞的线程。这两种方式的效率高低取决于上下文切换的开销以及在成功获取锁之前需要等待的时间。如果等待时间较短,采用自旋等待的方式,如果时间较长,则采用操作系统...
分类:
编程语言 时间:
2014-09-10 22:30:41
阅读次数:
230