package com.lyon.juc; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; //信号量 //限流用到的比较多 public class SemaphoreDemo { public static void main(String[] args) { Semaphore semaphore = new Semaphore(3); for (int i = 1; i <= 6; i++) { new Thread(()->{ //acquire() 得到 try { semaphore.acquire(); System.out.println(Thread.currentThread().getName()+"抢到车位"); TimeUnit.SECONDS.sleep(2); System.out.println(Thread.currentThread().getName()+"离开车位"); } catch (InterruptedException e) { e.printStackTrace(); }finally { semaphore.release(); } //release() 释放 },String.valueOf(i)).start(); } } }
多线程之信号量
最新推荐文章于 2022-06-26 11:56:54 发布