semaphore简单实例

news/2024/7/8 4:10:46 标签: semaphore, 实例

semaphore是java里边的信号灯,感觉很像blockqueue,嗯

 

package com.mutiple;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;

public class TestSemaphore {
	
	public static void main(String[] args) {
		ExecutorService exec = Executors.newCachedThreadPool();
		
		final Semaphore semp = new Semaphore(5);
		
		for (int i = 0; i < 20; i++) {
			final int no = i;
			Runnable run = new Runnable() {
				
				@Override
				public void run() {
					try {
						semp.acquire();
						System.out.println("Accessing: "+no);
						long time = (long) (Math.random()*10000);
						System.out.println(time);
						Thread.sleep(time);
						semp.release();
						System.out.println("---------------"+semp.availablePermits());
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			};
			exec.execute(run);
		}
		
		exec.shutdown();
	}

}

 

 

 


http://www.niftyadmin.cn/n/1695590.html

相关文章

ps -ef查询进程排除grep自身影响

以查询Apache进程为例 123456[rootopenvas ~]# ps -ef |grep httpd |sort -r -k 8 |tail -5 apache 19785 4416 0 16:29 ? 00:00:00 /usr/sbin/httpdapache 19784 4416 0 16:29 ? 00:00:00 /usr/sbin/httpdapache 19778 4416 0 16:…

测试IP是否连通的方法1

测试stringsqlserverurloracle数据库[java] view plaincopy/** * 测试IP是否连通 Author zyx Date 2012-04-18 * * param host * return */ private boolean testHost(Map<String, String> props) { boolean status false; …

PHP对接Java使用curl post发送数据流

今天遇到一点小坑需要与java对接&#xff0c;以数据流的形式发送 ^_^ 发送数据只要是字符串格式就可以……. /*** curl post java对接 传输数据流* */public function curlPost($Url, $data){$ch curl_init($Url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"…

吴恩达《机器学习》课程笔记——第十章:神经网络参数的反向传播算法

上一篇 ※※※※※※※※ 【回到目录】 ※※※※※※※※ 下一篇 10.1 代价函数 首先引入一些便于稍后讨论的新标记方法&#xff1a; 假设神经网络的训练样本有?个&#xff0c;每个包含一组输入?和一组输出信号?&#xff0c;?表示神经网络层数&#xff0c;??表示输出…

JProfiler学习笔记一

JProfiler学习笔记一 一、他是一个商业工具&#xff0c;学习他能解决JAVA性能定位问题&#xff1b; 1、点击第一个&#xff0c;再跳转的页面选择需要监控的机器&#xff0c;如果没有配置需要配置成功 2、选择监控内容&#xff0c;点击确定 二、简单使用 1、点击Memory 标记后就…

Class.forName和ClassLoader.loadClass

一直都忘记他们的区别&#xff0c;在此坐下记录 转&#xff1a;http://zhanyu1984.iteye.com/blog/1545749 Class.forName("xx.xx")等同于 Class.forName("xx.xx",true,ClassLoader.getSystemClassLoader());//此时已经初始化实例对象了 而ClassLoader loa…

LoadRunner 调用Dll完成加密解密

LoadRunner(LR)里的函数真的少得相当可怜&#xff0c;连简单的一个MD5、Base64加密都没有。 但我们可以通过在C里把一些加解密写成函数&#xff0c;供LR调用。 DLL函数编写 C里新建工程Class Library&#xff08;本人是用VS2005&#xff0c;在VS6貌像是&#xff1a;Win32 Dynam…

phpExcel数据导入

简介&#xff1a;PHPExcel 是用来操作Office Excel 文档的一个PHP类库&#xff0c;它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格&#xff0c;如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnum…