public class Test {
private static PersistenceManager instance = new PersistenceManager();
private static volatile int threadCounter = 0;
// maximum concurrent threads allowed
private static int N = 3;
public static void rockNroll() {
PersistenceManager instance;
while(threadCounter >= N) {
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
if(threadCounter < N) {
getAndAdd(1);
System.out.println("current working threads is " + threadCounter);
instance = doWork();
getAndAdd(-1);
} else {
instance = null;
}
if(instance != null) {
System.out.println("well done...");
}
}
private static PersistenceManager doWork() {
return getPMInstance();
}
private static synchronized void getAndAdd(int delta) {
threadCounter += delta;
}
public static PersistenceManager getPMInstance() {
return instance;
}
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
new Thread() {
public void run() {
rockNroll();
}
}.start();
}
}
}
class PersistenceManager {
}
因为涉及Google App Engine,因此不能用ReentrantLock, AtomicInteger等类
分享到:
相关推荐
这个工程是为了学习guava concurrent中的AbstractFuture而建立的,里面有可以运行的例子,再配合我的博客:https://blog.csdn.net/o1101574955/article/details/82889851,可以看明白guava concurrent的基本设计思路...
Concurrent, Real-Time and Distributed Programming in Java Threads, RTSJ and RMI 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络...
concurrent-1.3.4.jar
标题 "JDK concurrent" 指的是Java开发工具包(JDK)中的并发编程相关知识。并发编程是在多线程环境中同时执行多个任务的技术,它在现代计算机系统中至关重要,尤其是在多核处理器和高并发应用中。Java JDK提供了一...
《backport-util-concurrent:Java并发编程的利器》 在Java的世界里,高效并发处理是提升应用程序性能的关键因素之一。backport-util-concurrent库,正如其名,是一种将Java 5及以上版本的并发特性“回移植”到Java...
concurrent-1.3.2.jar concurrent-1.3.2.jar
concurrent.jar web开发工具包
Java的并发库(java.util.concurrent)提供了丰富的线程池实现,包括`ThreadPoolExecutor`,它是基于工作窃取算法的高效线程池。本文主要分析的是基于`concurrent`包的一个特定线程池实现,探讨其实现原理和源码。 ...
Concurrent.Thread.js 一个用来让javascript也进行多线程开发的包,感兴趣的快来下吧。
《并发编程:JavaScript中的Concurrent.Thread.js》 在IT领域,多线程编程是一种常见的优化技术,用于提高程序的执行效率。特别是在JavaScript这样的单线程环境中,由于其异步执行模型,多线程处理显得尤为重要。...
在Java编程语言中,"concurrent"一词通常与多线程并发编程相关,它涉及到如何在多个执行线程之间高效、安全地共享资源。这里的"concurrent源代码"可能是指Java并发包(`java.util.concurrent`)中的源代码,这个包包含...
concurrent.jar 里面有,使用Apache JCS 时候需要的EDU/oswego/cs/dl/util/concurrent/Channel ,编译 jcaptcha时候需要第EDU.oswego.cs.dl.util.concurrent.ClockDaemon类, concurrent-1.3.3.jar
JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-1.3.2JavaEE源代码 concurrent-...
**并发编程在JavaScript中的突破:Concurrent.Thread库** 在JavaScript这样的单线程环境中,实现并发处理往往是一项挑战。然而,随着技术的发展,开发者们找到了在JS中利用多线程的方法,Concurrent.Thread就是一个...
本资源“java concurrent 精简源码”着重关注Java并发库(java.util.concurrent)的核心概念,包括阻塞队列和线程管理。下面将详细阐述这些知识点。 1. **Java并发库(java.util.concurrent)** Java并发库是Java ...
Concurrent下的例子,涵盖了大部分常用类 例如BlockingQueue、CountDownLatch、CyclicBarrier、Exchanger、ExecuteService、lock、timeutil等
extensions to the purely-functional language haskell that allows it to express explicitly concurrent applications
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
其中,“Concurrent Group”(并发组)功能是LoadRunner中的一个核心概念,它允许测试人员创建一组操作,这些操作可以由多个虚拟用户同时执行,从而模拟真实世界中的高并发场景。以下是对“Concurrent Group”及其...