我对程序运行的分析,但它不是那样发生的::
-我在 main 方法中创建了 2 个线程,即 Child1 和 Child2。
- 然后启动了两个线程
-Child1 作为单独的线程进入 run() 方法并进入同步块并打印 1 并由于调用了 wait 方法而休眠。
-Child2 作为单独的线程进入 run() 方法并进入同步块并打印 1 并通知 Child1 唤醒。
- 这个过程持续到 5
package multi_threading;
public class inter_thread implements Runnable {
static inter_thread obj;
boolean val=false;
Thread t;
public inter_thread(){}
public inter_thread(String msg){
t=new Thread(obj,msg);
t.start();
}
public static void main(String args[]){
obj=new inter_thread();
inter_thread obj1=new inter_thread("Child1");
inter_thread obj2=new inter_thread("Child2");
try{
obj1.t.join();
obj2.t.join();
}catch(InterruptedException e){
System.out.println("Interrupted");
}
}
public void run(){
int i;
synchronized(obj){
for(i=1;i<=5;i++){
System.out.println(i);
val=!val;
while(val)
try{
wait();
}catch(InterruptedException e){
System.out.println("Interrupted");
}
notify();
}
}
}
}
我想使用多线程显示这样的输出::
1
1
2
2
3
3
4
4
5
5
输出::
1
1
2
谁能告诉我是什么问题??
EDIT2::我已经编辑了之前的代码