java中多个线程访问一个方法,只有一个线程能够访问这个方法,而其他线程会被关闭,怎么做?

2024-12-26 21:00:00
推荐回答(4个)
回答1:

1)可以在该方法上加一个同步锁,让其变为同步方法,这样每次就只有一个线程可以访问,而其他的线程只有等到他访问完之后才有机会访问。
2)可以在方法中设置参数count,访问时累加,然后判断。
一定要关闭的话,首先要判断是那一个线程访问了方法,之后将其他的关闭就可以了。

回答2:

其他线程会被关闭?是其他线程不可访问吧?
如果是不可访问的话,在定义该方法中加个synchronized
如:public synchronized void methodName() {
//方法体
}
synchronized关键字是用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码

回答3:

设置信号量,如果有人访问就把信号量置值

回答4:

用synchronized关键字

public void go()
{
synchronized(this)
{
//逻辑代码

}