java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 信号量Semaphore

Java中的信号量Semaphore详细解读

作者:tanxinji

这篇文章主要介绍了Java中的信号量Semaphore详细解读,Java信号量机制可以用来保证线程互斥,创建Semaphore对象传入一个整形参数,类似于公共资源,需要的朋友可以参考下

Java中的信号量Semaphore

信号量机制可以用来保证线程互斥

创建Semaphore对象: 传入一个整形参数,类似于公共资源

常用方法:

		Semaphore s = new Semaphore(1);
        s.acquire();
        s.release();

示例:

import java.util.concurrent.Semaphore;

public class SemaphoreTest {
    public static void main(String[] args) throws InterruptedException {
        Semaphore t = new Semaphore(1);

        new Thread(  ()->{
            try {
              t.acquire(  );  // 获取
              Thread.sleep(2000);
              System.out.println(Thread.currentThread().getName()+" 执行!");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }finally {
                t.release(); //释放
            }

        } ,"thread1" ).start();

        new Thread(  ()->{
            try {
                t.acquire();
                Thread.sleep(2000);
                System.out.println(Thread.currentThread().getName()+" 执行!");

            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                t.release(1);
            }
        } ,"thread2" ).start();



    }
}

到此这篇关于Java中的信号量Semaphore详细解读的文章就介绍到这了,更多相关信号量Semaphore内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文