多线程问题
刚才无意间发现一个问题
public class J {
public static void main(String[] args) {
Thread a=new Thread(new Method());
a.start();
Thread b=new Thread(new Method());
b.start();
}
}
public class Method implements Runnable{
//String a = "a";
int b = 1;
String a = new String("a");
public static int cp=100;
public void run(){
while(true){
synchronized(a){{
if(cp>0){
System.out.println(Thread.currentThread().getName()+" "+(101-cp));
cp--;
}else{break;}}
}
}
}
}
用string a = "a";的时候打印出来正常的,但是用string a = new String("a");会打印两个1,不是很明白为什么
public class J {
public static void main(String[] args) {
Thread a=new Thread(new Method());
a.start();
Thread b=new Thread(new Method());
b.start();
}
}
public class Method implements Runnable{
//String a = "a";
int b = 1;
String a = new String("a");
public static int cp=100;
public void run(){
while(true){
synchronized(a){{
if(cp>0){
System.out.println(Thread.currentThread().getName()+" "+(101-cp));
cp--;
}else{break;}}
}
}
}
}
用string a = "a";的时候打印出来正常的,但是用string a = new String("a");会打印两个1,不是很明白为什么
...全文
相关推荐
DateFormat多线程问题
在多线程环境下,不恰当的使用`DateFormat`可能导致数据不一致、性能下降甚至程序崩溃。这篇博客将深入探讨`DateFormat`在多线程环境下的问题及其解决方案。
浅析Python多线程下的变量问题
然而,当需要在线程间共享数据时,就必须处理好线程同步问题。3. 数据传递问题:在多线程编程中,将数据从一个线程传递到另一个线程也是一个挑战。
多线程死锁问题
在Java多线程编程中,死锁是一个非常重要的概念,也是开发者需要密切关注和避免的问题。死锁是指两个或多个线程互相等待对方释放资源,从而导致它们都无法继续执行的状态。
Python tkinter 多线程 哲学家进餐问题
"Python tkinter 多线程实现的哲学家进餐问题示例代码"在计算机科学中,"哲学家进餐问题"是一个经典的并发控制问题,用来展示死锁的可能性。这个问题描述了五个哲学家围坐在一张圆桌旁,每
个人总结40个Java多线程面试问题和答案
Java多线程的缺点是增加了程序的复杂度,可能会导致deadlock和数据不一致的问题。13. 如何使用多线程?


