`

Maximum Concurrent Threads Allowed

阅读更多
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等类

分享到:
评论

相关推荐

    concurrent 摘自guava concurrent

    这个工程是为了学习guava concurrent中的AbstractFuture而建立的,里面有可以运行的例子,再配合我的博客:https://blog.csdn.net/o1101574955/article/details/82889851,可以看明白guava concurrent的基本设计思路...

    Concurrent, Real-Time and Distributed Programming in Java Threads, RTSJ 无水印原版pdf

    Concurrent, Real-Time and Distributed Programming in Java Threads, RTSJ and RMI 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络...

    concurrent-1.3.4.jar

    concurrent-1.3.4.jar

    JDK concurrent

    标题 "JDK concurrent" 指的是Java开发工具包(JDK)中的并发编程相关知识。并发编程是在多线程环境中同时执行多个任务的技术,它在现代计算机系统中至关重要,尤其是在多核处理器和高并发应用中。Java JDK提供了一...

    backport-util-concurrent(2.2 /3.1)

    《backport-util-concurrent:Java并发编程的利器》 在Java的世界里,高效并发处理是提升应用程序性能的关键因素之一。backport-util-concurrent库,正如其名,是一种将Java 5及以上版本的并发特性“回移植”到Java...

    concurrent-1.3.2.jar

    concurrent-1.3.2.jar concurrent-1.3.2.jar

    concurrent_.jar

    concurrent.jar web开发工具包

    concurrent线程池的实现技术分析

    Java的并发库(java.util.concurrent)提供了丰富的线程池实现,包括`ThreadPoolExecutor`,它是基于工作窃取算法的高效线程池。本文主要分析的是基于`concurrent`包的一个特定线程池实现,探讨其实现原理和源码。 ...

    Concurrent.Thread.js javascript多线程

    Concurrent.Thread.js 一个用来让javascript也进行多线程开发的包,感兴趣的快来下吧。

    Concurrent.Thread.js

    《并发编程:JavaScript中的Concurrent.Thread.js》 在IT领域,多线程编程是一种常见的优化技术,用于提高程序的执行效率。特别是在JavaScript这样的单线程环境中,由于其异步执行模型,多线程处理显得尤为重要。...

    concurrent 源代码

    在Java编程语言中,"concurrent"一词通常与多线程并发编程相关,它涉及到如何在多个执行线程之间高效、安全地共享资源。这里的"concurrent源代码"可能是指Java并发包(`java.util.concurrent`)中的源代码,这个包包含...

    concurrent-1.3.3.jar

    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.2

    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-...

    Concurrent.Thread JS版多线程库

    **并发编程在JavaScript中的突破:Concurrent.Thread库** 在JavaScript这样的单线程环境中,实现并发处理往往是一项挑战。然而,随着技术的发展,开发者们找到了在JS中利用多线程的方法,Concurrent.Thread就是一个...

    java concurrent 精简源码

    本资源“java concurrent 精简源码”着重关注Java并发库(java.util.concurrent)的核心概念,包括阻塞队列和线程管理。下面将详细阐述这些知识点。 1. **Java并发库(java.util.concurrent)** Java并发库是Java ...

    Concurrent包的小例子

    Concurrent下的例子,涵盖了大部分常用类 例如BlockingQueue、CountDownLatch、CyclicBarrier、Exchanger、ExecuteService、lock、timeutil等

    concurrent haskell

    extensions to the purely-functional language haskell that allows it to express explicitly concurrent applications

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    LoadRunner函数中文翻译系列之3--Concurrent Group

    其中,“Concurrent Group”(并发组)功能是LoadRunner中的一个核心概念,它允许测试人员创建一组操作,这些操作可以由多个虚拟用户同时执行,从而模拟真实世界中的高并发场景。以下是对“Concurrent Group”及其...

Global site tag (gtag.js) - Google Analytics