prince的文章

30、Java并发编程:Exchanger

Exchanger是一个线程间交换数据的工具类。 Exchanger从字面上可以理解为交换者,是一个可以用于线程间协作的工具类。主要用于线程间的数据交换。Exchanger提供一个同步点,在这个同步点上,两个线程可以交换彼此的数据。这两个线...

29、Java并发编程:Semaphore

Semaphore(信号量)是用来控制线程并发数的,如果想对特定资源限制允许访问的线程数,那么就可以使用Semaphore来协调各个线程,从而保证线程合理运行。Semaphore由一个构造方法用来指定资源允许访问的线程数,也称为许可证的数量...

26、Java并发编程:原子操作类

原子操作类简介 当更新一个变量的时候,多出现数据争用的时候可能出现所意想不到的情况。这时的一般策略是使用synchronized解决,因为synchronized能够保证多个线程不会同时更新该变量。然而,从jdk 5之后,提供了粒度更细、量...

25、Java并发编程:读写锁

在之前提到的synchronized的互斥锁和ReentrantLock都属于排他锁,这些锁在同一时刻只能允许一个线程进行访问。而读写锁允许同一时刻有多个读线程进行访问,但是在有写线程的时候,所有的读线程和其他所有的写线程都将阻塞。读写锁维...

24、Java并发编程:Fork/Join框架

Fork/Join框架简介 Fork/Join框架是Java 7提供的用于并行执行任务的框架。具体是把大任务切分为小任务,再把小任务的结果汇总为大任务的结果。从这两个单词的角度分析,Fork是分叉的意思,可以引申为切分,Join是加入的意思...

22、Java并发编程:Executor框架

Java使用线程完成异步任务是很普遍的事,而线程的创建与销毁需要一定的开销,如果每个任务都需要创建一个线程将会消耗大量的计算资源,JDK 5之后把工作单元和执行机制区分开了,工作单元包括Runnable和Callable,而执行机制则由Ex...