日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单的java多线程源码分享(二)

發布時間:2025/4/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的java多线程源码分享(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

/** * 軍隊線程 * 模擬作戰雙方的行為 * @author gent * */ public class ArmyRunnable implements Runnable{//volatile保證了線程可以正確讀取其他線程寫入的值//可見性 ref JMM,happens-before原則volatile boolean keepRunning = true;@Overridepublic void run() {while (keepRunning) {//發動5連擊for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+"進攻對方["+i+"]次");//讓出處理器時間,下次該誰進攻還不一定Thread.yield();}}System.out.println(Thread.currentThread().getName()+"結束了戰斗!");}}/** * 關鍵人物類 * @author gent * */ public class KeyPersonThread extends Thread{public void run(){System.out.println(Thread.currentThread().getName()+"開始了戰斗");for(int i=0;i<10;i++){System.out.println(Thread.currentThread().getName()+"左突右殺,攻擊隋軍");}System.out.println(Thread.currentThread().getName()+"結束了戰斗");} }/** * 隋唐演繹舞臺 * @author gent * */ public class Stage extends Thread {public void run(){System.out.println("歡迎觀看隋唐演義");try {Thread.sleep(5000);} catch (InterruptedException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}ArmyRunnable armyTaskOfDynasty = new ArmyRunnable();ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();//使用Runnable接口創建線程Thread armyOfSuiDynasty = new Thread(armyTaskOfDynasty,"隋軍");Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"農民起義軍");//啟動線程,讓軍隊開始作戰armyOfSuiDynasty.start();armyOfRevolt.start();//舞臺線程休眠,大家專心觀看軍隊廝殺try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("正當雙方激戰正酣,半路殺出個程咬金");Thread mrCheng = new KeyPersonThread();mrCheng.setName("程咬金");System.out.println("程咬金的理想就是結束戰爭,使百姓安居樂業!");//鳴金收兵//停止線程的方法armyTaskOfDynasty.keepRunning=false;armyTaskOfRevolt.keepRunning=false;//不應該使用stop方法停止線程,因為這是一種戛然而止的方式try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}mrCheng.start();try {mrCheng.join();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("戰爭結束,人民安居樂業,程先生實現了人生理想!");System.out.println("演出結束"); // try { // armyOfRevolt.join(); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // }}public static void main(String[] args) {new Stage().start();} }

轉載于:https://my.oschina.net/u/3206691/blog/1607199

總結

以上是生活随笔為你收集整理的简单的java多线程源码分享(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。