zoukankan      html  css  js  c++  java
  • Semaphore信号量

    public class SemaphoreDemo {
        public static void main(String[] args) {
             Semaphore semaphore = new Semaphore(3);//信号量3个
             for (int i = 0; i < 6; i++) {
                new Thread(()->{
                    try {
                        semaphore.acquire();
                        System.out.println(Thread.currentThread().getName()+"抢占到资源");
                        try {
                            TimeUnit.MICROSECONDS.sleep(400);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName()+"释放了资源");
                    } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }finally{
                        semaphore.release();
                    }
                },String.valueOf(i)).start();
            }
        }
    }

    执行结果:

    1抢占到资源
    2抢占到资源
    0抢占到资源
    2释放了资源
    0释放了资源
    1释放了资源
    4抢占到资源
    3抢占到资源
    5抢占到资源
    3释放了资源
    5释放了资源
    4释放了资源
  • 相关阅读:
    第十二周作业
    第十二周上机练习
    第十一周作业
    第十一周上机练习
    第十周上机作业
    第九周上机练习
    第八周作业
    软件测试第一次作业
    Jsp第二次作业
    JSP第一次作业
  • 原文地址:https://www.cnblogs.com/flgb/p/11789104.html
Copyright © 2011-2022 走看看