Java并发编程之Semaphore的使用简介
简介Semaphore是用来限制访问特定资源的并发线程的数量,相对于内置锁synchronized和重入锁ReentrantLock的互斥性来说,Semaphore可以允许多个线程同时访问共享资源。Semaphore:创建Semaphore,并指定许可证的数量和公平策略。acquire:从Semaphore中获取指定数量的许可证,如果获取不到则阻塞等待,直到其他线程释放了对应数量的许可证或者当前线程被中断。tryAcquire():尝试从Semaphore中获取一个许可证,获取成功则返回true,获取失败则返回false,不会进行等待。相比内置锁synchronized和重入锁ReentrantLock,使用Semaphore实现互斥有个明显的缺点:不可重入,没有释放许可证的情况下,再次调acquire方法将导致死锁。
下载地址
用户评论