信号量是在管程发明之前15年被发明出来的东西。信号量用于解决在控制数量的情况下发文同一资源。
例如最多允许5个线程获取一个资源,则在初始化时将信号量初始为5,当多一个线程使用资源时就将信号量减一,减一后如果发现信号量小于0了就不再继续执行,而是进入等待队列。当其余线程执行完毕,会将信号量加一,然后唤醒等待队列中的一个线程。
信号量模式的3个方法是:init,down,up。
java中对应的后两个方法是:acquire,release。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2762