valatile 解决字段可见性
8888888888
77777777
666666666666
555555
创建两支军队的作战任务
4444444444
// 让出处理器时间 Thread.yield();
volatile保证了线程可以正确的读取其它线程写入的值
Thread
333333333333
333333333333
33333333
2222222222222222
111111111111111111111
volatile 保证了线程可以正确读取其他线程写入的值
volatile boolean keeprunning=true;
Thread.yield();//让出处理器时间
ArmyRunnable armyTaskOfSuiAynasty=new ArmyRunnable();
//runnable接口的实现类的对象实例1
ArmyRunnable armyTaskOfRevolt=new ArmyRunnable();
//runnable接口的实现类的对象实例2
Thread armyTaskOfSuiAynasty=new Thread(armyTaskOfSuiAynasty,"隋军");
//使用runnable接口(的实现类的对象实例1)创建线程
volatile保证了线程可以正确的读取其他线程写入的值
volatile boolean keepRunning
volatile保证了线程可以正确的读取其他线程写入的值
Thread.currentThread().getName();获取当前线程的名称。
volatile;可见性,java的关键字(保证了线程可以正确的读取其他线程写入的值)
Thread.yield();让出当前线程的执行权限,随机选择线程执行。
Thread.sleep();线程休眠
Thread.join();优先执行该线程,其他线程都暂停。使同级其他线程停下来,等待调用join方法的对象完成线程后,再进行其他线程
Thread.currentThread().getName();获取名称。volatile;可见性,java的关键字(保证了线程可以正确的读取 其他线程写入的值)Thread.yield();让出线程时间。Thread.sleep();线程休眠join();使其他线程等待当前线程终止
volatile 关键字
volatile关键字,保证线程可以正确的读取其他线程写入的值。
volatile boolean keepRunning=true;
volatile保证可见性 ref JMM, happens-before原则
Thread.sleep(50);
是将主线程休眠50毫秒=0.05秒,将cpu片段让给另外两个线程,50毫秒之后进入就绪状态,之后三个线程竞争cpu资源
Thread.currentThread().getName();获取名称。 volatile;可见性,java的关键字(保证了线程可以正确的读取 其他线程写入的值) Thread.yield();让出线程时间。 Thread.sleep();线程休眠 join();使其他线程等待当前线程终止
volatile 保证了线程可以正确的读取其他线程写入的值
可见性 ref JMM ,happens-before原则
在主线程中执行armyOfRevolt.join()方法
让其中一个军队线程进行礼让,以便另一个军队线程可以正常抢到CUP,正常停止while()循环