| package com.example.test.async; |
| |
| import java.util.Random; |
| import java.util.concurrent.Semaphore; |
| |
| |
| |
| |
| public class SemaphoreTest { |
| |
| private static final Semaphore SEMAPHORE = new Semaphore(5); |
| |
| public static void main(String[] args) { |
| for (int i = 0; i < 10; i ++){ |
| int finalI = i; |
| new Thread(()->{ |
| |
| try { |
| SEMAPHORE.acquire(); |
| System.out.println(finalI + "-号成功进入"); |
| int time = new Random().nextInt(60); |
| Thread.sleep(time); |
| System.out.println(finalI + "-号待了:" + time + " 分钟后出来了"); |
| SEMAPHORE.release(); |
| } catch (InterruptedException e) { |
| throw new RuntimeException(e); |
| } |
| }, String.valueOf(i)).start(); |
| } |
| } |
| |
| } |
结果

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律