Java 线程技术之同步计数器Semaphore

136 阅读2分钟
原文链接: click.aliyun.com

Java 线程技术之同步计数器Semaphore

天飞 2017-12-21 18:00:05 浏览40 评论0

java 线程 同步 string static exception class void demo thread Semaphore

摘要: 用于线程池,连接池, 处理完之后,才允许下一个操作的。

用于线程池,连接池,

处理完之后,才允许下一个操作的。


eb77214f371095c782557aca30de7a4597e3ac2a

package demo.thread;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Semaphore;

public class ThreadMain {
	public static void main(String[] args) throws Exception {
		final Semaphore sema = new Semaphore(3);
		for (int i = 0; i < 10; i++) {
			final int no = i;
			Runnable thread = new Runnable() {
				public void run() {
					try {
						System.out.println("用户 " + no + "连接上了: ");
						Thread.sleep(300L);
						sema.acquire();
						System.out.println("用户 " + no + "开始访问后台程序...");
						Thread.sleep(1000L);
						sema.release();
						System.out.println("用户 " + no + "访问结束.");
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			};
			new Thread(thread).start();
		}
	System.out.println("Main thread end...");
		
	}

}


用户 2连接上了: 
用户 5连接上了: 
用户 3连接上了: 
用户 1连接上了: 
用户 6连接上了: 
用户 7连接上了: 
Main thread end...
用户 0连接上了: 
用户 9连接上了: 
用户 4连接上了: 
用户 8连接上了: 
用户 5开始访问后台程序...
用户 6开始访问后台程序...
用户 2开始访问后台程序...
用户 2访问结束.
用户 7开始访问后台程序...
用户 5访问结束.
用户 6访问结束.
用户 3开始访问后台程序...
用户 1开始访问后台程序...
用户 4开始访问后台程序...
用户 3访问结束.
用户 0开始访问后台程序...
用户 7访问结束.
用户 1访问结束.
用户 8开始访问后台程序...
用户 4访问结束.
用户 0访问结束.
用户 9开始访问后台程序...
用户 8访问结束.
用户 9访问结束.


本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿  详情请点击 评论文章 (0) (0) (0)

相关文章

网友评论