import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util....
分类:
编程语言 时间:
2014-07-23 16:17:31
阅读次数:
206
packagecom;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.concurrent.ArrayBlockingQueue;
importjava.util.concurrent.ConcurrentHashMap;
/**
*MQ
*@authorpengbo
*
*/
publicclassQueueManager{
publicstaticfinalintMAX_QUEUE_SIZE=200;
//创建一..
分类:
其他好文 时间:
2014-07-23 00:18:28
阅读次数:
222
package多线程;
importjava.util.concurrent.locks.Condition;
importjava.util.concurrent.locks.Lock;
importjava.util.concurrent.locks.ReentrantLock;
publicclassPandCnewLock{
publicstaticvoidmain(String[]args){
// Producerp=newProducer2();
// Consumerc=..
分类:
编程语言 时间:
2014-07-22 18:21:02
阅读次数:
288
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 来看Ato...
分类:
编程语言 时间:
2014-07-22 08:10:35
阅读次数:
196
Server 端:package foundation;import java.io.*;import java.net.*;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;publi...
分类:
编程语言 时间:
2014-07-22 00:23:34
阅读次数:
280
主要区别1、Lock能完成几乎所有synchronized的功能,并有一些后者不具备的功能,如公平锁、等待可中断、锁绑定多个条件等;2、synchronized是Java
语言层面的,是内置的关键字;Lock则是JDK5中出现的一个包,在使用时,synchronized
同步的代码块可以由JVM自动释放;Lock需要程..
分类:
编程语言 时间:
2014-07-21 12:46:35
阅读次数:
254
对于tr1::shared_ptr在安装vs同时会自带安装,但是版本较低的不存在。而boost作为tr1的实现品,包含
“Algorithms
Broken Compiler Workarounds
Concurrent Programming
Containers
Correctness and Testing
Data Structures
Domain Specific
Fu...
分类:
其他好文 时间:
2014-07-19 23:18:19
阅读次数:
371
在这里首先说明一下,由于Phaser在4.3代码里是存在,但并没有被开放出来供使用,但已经被本人大致研究了,因此也一并进行剖析。
Phaser是一个可以重复利用的同步栅栏,功能上与CyclicBarrier和CountDownLatch相似,不过提供更加灵活的用法。也就是说,Phaser的同步模型与它们差不多。一般运用的场景是一组线程希望同时到达某个执行点后(先到达的会被阻塞),执行一个...
分类:
其他好文 时间:
2014-07-19 23:14:19
阅读次数:
437
Exchanger是一个针对线程可以结对交换元素的同步器。每条线程把某个对象作为参数调用exchange方法,与伙伴线程进行匹配,然后再函数返回的时接收伙伴的对象。另外,Exchanger内部实现采用的是无锁算法,能够大大提高多线程竞争下的吞吐量以及性能。
算法实现
基本方法是维持一个“槽”(slot),这个槽是保持交换对象的结点的引用,同时也是一个等待填满的“洞”(hole)。如...
分类:
移动开发 时间:
2014-07-16 17:23:36
阅读次数:
484
Semaphore是一个计数的信号量。从概念上来说,信号量维持一组许可(permits)。acquire方法在必须的时候都会阻塞直到有一个许可可用,然后就会拿走这个许可。release方法添加一个许可,会有可能释放一个阻塞中的获取者(acquirer)。然而,Semaphore没有使用真实的许可对象,只是保持一个可用计数并且采取相应的行为。
信号量一般用于限制可以访问一些(物理上或者逻辑上)的资...
分类:
其他好文 时间:
2014-07-16 14:17:40
阅读次数:
260