如何才能实现同步?classThreadclazz2extendsThread{privateintdate=10;Threadclazz2(Stringname){super(name);}@Overridepublicvoidrun(){while(true){synchronized(this){if(date>0...
如何才能实现 同步?
class Threadclazz2 extends Thread{
private int date=10;
Threadclazz2(String name){
super(name);
}
@Override
public void run() {
while(true)
{
synchronized(this)
{
if(date>0)
{
try{
Thread.sleep(100);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" "+date--);
}
else
break;
}
}
}
}
public class TB_ZJ3{
public static void main(String[] args) {
Threadclazz2 t1=new Threadclazz2("1号窗口");
Threadclazz2 t2=new Threadclazz2("2号窗口");
Threadclazz2 t3=new Threadclazz2("3号窗口");
t1.start();
t2.start();
t3.start();
}
}
运行结果:
1号窗口 10
3号窗口 10
2号窗口 10
2号窗口 9
1号窗口 9
3号窗口 9
1号窗口 8
2号窗口 8
3号窗口 8
1号窗口 7
3号窗口 7
2号窗口 7
1号窗口 6
3号窗口 6
2号窗口 6
1号窗口 5
2号窗口 5
3号窗口 5
1号窗口 4
3号窗口 4
2号窗口 4
1号窗口 3
3号窗口 3
2号窗口 3
1号窗口 2
3号窗口 2
2号窗口 2
1号窗口 1
3号窗口 1
2号窗口 1
展开
本文通过一个Java线程同步的实例,展示了如何使用synchronized关键字来实现多个线程对共享资源的安全访问。示例中三个线程分别代表不同的窗口,它们依次减少共享变量的值,确保了操作的一致性和原子性。

被折叠的 条评论
为什么被折叠?



