java 线程数据同步

2023-03-12,,

java 线程数据同步

由买票实例

//java线程实例
//线程数据同步
//卖票问题
//避免重复卖票 //线程
class xc1 implements Runnable{ //定义为静态,可以使多个对象使用同一个数据
public static int chepiao = 10; //车票总数 public static String aa = new String("123"); //字符串随意定义,定义在函数上面 public void run(){ while(true){ //synchronized的作用是,让它所管辖的代码部分,要么全部执行完,要么全部不执行
//synchronized既可以修饰代码块,又可以修饰方法
//synchronized如果直接放在方法上使用。使用方法为 public synchronized 方法名
//这里为什么要加(aa),原因在于,如果能得到aa,就执行
synchronized(aa){ if(chepiao>0){
chepiao--;
System.out.println(Thread.currentThread().getName()+"车站,已经卖出第 "+(chepiao+1)+" 张车票");
}
else{
break;
}
} } }
} public class Index{
public static void main(String[] args){ //线程1
xc1 xc1 = new xc1();
Thread xc1_Thread = new Thread(xc1);
xc1_Thread.start(); //执行线程 //线程2
xc1 xc2 = new xc1();
Thread xc2_Thread = new Thread(xc2);
xc2_Thread.start(); //执行线程 //线程3
xc1 xc3 = new xc1();
Thread xc3_Thread = new Thread(xc3);
xc3_Thread.start(); //执行线程 }
}

java 线程数据同步的相关教程结束。

《java 线程数据同步.doc》

下载本文的Word格式文档,以方便收藏与打印。