Java 线程技术之同步计数器Semaphore
天飞 2017-12-21 18:00:05 浏览40 评论0java 线程 同步 string static exception class void demo thread Semaphore
摘要: 用于线程池,连接池, 处理完之后,才允许下一个操作的。
用于线程池,连接池,
处理完之后,才允许下一个操作的。

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)