Java 多线程 为什么一个方法已经声明为synchronized,没效果
答案:4 悬赏:40 手机版
解决时间 2021-02-04 07:57
- 提问者网友:王者佥
- 2021-02-04 02:25
在方法里设了一个断点debug的时候2个线程都停在这个地方,这不就2个线程同时在使用这个方法了?
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-02-04 03:01
不要给方法加synchronized,给成员变量加就可以, 或者如果没有公共的成员变量的话,可以把这个方法放到单独的类中,new一个类,调用这个方法,那样的话,每个多线程都单独开辟了一个方法空间,各自执行就可以了,希望对你有用。。。
全部回答
- 1楼网友:像个废品
- 2021-02-04 05:44
求代码!!!
- 2楼网友:慢性怪人
- 2021-02-04 05:22
public static void main(string[] args) {
synchronizedrun sr = new synchronizedrun();
sr.start();
sr.cannotrunme();
}
@override
public void run() {
synchronized (this) {
while(true) {
}
}
}
public void cannotrunme() {
synchronized(this){
system.out.println("run?!");
}
}
- 3楼网友:不甚了了
- 2021-02-04 04:08
会不会是第一个线程遇到这个断点时放弃使用,然后第二个线程就调用了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯