Semaphore信号量
博客专区 > 藏艺 的博客 > 博客详情
Semaphore信号量
藏艺 发表于2年前
Semaphore信号量
  • 发表于 2年前
  • 阅读 6
  • 收藏 0
  • 点赞 2
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

import java.util.concurrent.Semaphore;

/**
 * Created by zyBourn on 15/12/25.
 */
public class Entity {
    public static void main(String[] args) {
        //信号量
        //每次只能执行N个任务,N在创建信号量时确定,其余的任务只能排队执行
        Semaphore semaphore=new Semaphore(2);
        Person p1=new Person(semaphore,"A");
        p1.start();

        Person p2=new Person(semaphore,"B");
        p2.start();

        Person p3=new Person(semaphore,"C");
        p3.start();

        Person p4=new Person(semaphore,"D");
        p4.start();

        Person p5=new Person(semaphore,"E");
        p5.start();
    }
}
class Person extends Thread{
    private Semaphore semaphore;
    public Person(Semaphore semaphore,String name){
        setName(name);
        this.semaphore=semaphore;
    }
    public void run(){
        System.out.println(getName()+":等待!");
        try{
            semaphore.acquire();
            System.out.println(getName() + ":服务!");
            Thread.sleep(5000);
        }catch (InterruptedException e){
            e.printStackTrace();
        }
        System.out.println(getName()+":服务结束!");
        semaphore.release();
    }
}


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
藏艺
粉丝 1
博文 11
码字总数 1585
×
藏艺
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: