java 中 如何让一个方法内最多只能有两个线程访问
1个回答
展开全部
大体思想就是在方法中设置一个计数器,然后加一个同步锁synchronized,其中判断大于两个线程的时候线程休眠。具体代码如下:
Object sc = new Object();
//计数器
int count = 0;
public void fun(Thread t) {
synchronized (sc) {
//因为计数器开始是0,所以判断大于等于2就休眠
while (count >= 2) {
try {
sc.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
count++;
}
// 业务
System.out.println(t.getName());
System.out.println(t.getId());
// 更新访问计数并唤醒等待的线程
count--;
sc.notifyAll();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询