ITPub博客

首页 > 应用开发 > Java > JAVA信号量

JAVA信号量

Java 作者:壹頁書 时间:2014-05-19 23:33:16 0 删除 编辑
JAVA并发编程实践 83页
JAVA信号量实际用的并不多,书上的例子记录一下。

若许可证不足,则线程阻塞
  1. import java.util.*;
  2. import java.util.concurrent.*;

  3. public class BoundedHashSet<T>{
  4.         private final Set<T> set;
  5.         private final Semaphore sem;

  6.         public BoundedHashSet(int bound){
  7.                 this.set=Collections.synchronizedSet(new HashSet<T>());
  8.                 this.sem=new Semaphore(bound);
  9.         }

  10.         public void add(T o) throws InterruptedException{
  11.                 sem.acquire();
  12.                 set.add(o);
  13.                 System.out.println("add"+o);
  14.         }

  15.         public void remove(T o) {
  16.                 set.remove(o);
  17.                 sem.release();
  18.         }

  19.         public static void main(String[] args) throws InterruptedException
  20.         {
  21.                 BoundedHashSet<Integer> set=new BoundedHashSet<Integer>(3);
  22.                 set.add(1);
  23.                 set.add(2);
  24.                 set.add(3);
  25.                 set.add(4);
  26.         }
  27. }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1164711/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 简明 Python 教程
下一篇: JAVA闭锁
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339970