-
join()方法。等待该线程结束后,当前进程才能继续执行。 比如,只有当某一线程执行完,才能执行另一个线程的后续任务。查看全部
-
volatile 修饰变量可以保证了线程可以正确的读取其它线程写入的值。 happens-before原则。查看全部
-
两种方法实现线程: 1、继承 Thread 类 class MyThread extends Thread{}; Thread myThread = new MyThread(); myThread.start(); 2、实现Runnable类 class MyRunnable implements Runnable{} Thread myRunnable = new Thread(new MyRunnable); myRunnable.start();查看全部
-
java线程基于的类 Thread, 接口 runable, 常用的方法 public void run();查看全部
-
进程: 程序(任务)的执行过程 动态性 持有资源(共享内存,共享文件)和线程 载体 线程: 是系统中最小的执行单元(是操作系统能够进行运算调度的最小单位) 同一进程中有多个线程 线程共享进程的资源 交互: 互斥, 同步 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。查看全部
-
四.keypersonThread.java 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()+"结束了战斗!"); } } 五.join()方法使除了mrcheng線程繼續,其他線程停止 System.out.println("正当双方激战正酣,半路杀出了个程咬金"); Thread mrCheng = new KeyPersonThread(); mrCheng.setName("程咬金"); System.out.println("程咬金的理想就是结束战争,使百姓安居乐业!"); armyTaskOfSuiDynasty.keepRunning = false; armyTaskOfRevolt.keepRunning = false; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } /* * 历史大戏留给关键人物 */ mrCheng.start(); //万众瞩目,所有线程等待程先生完成历史使命 try { mrCheng.join();//join方法使除了mrcheng線程繼續,其他線程停止 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("战争结束,人民安居乐业,程先生实现了积极的人生梦想,为人民作出了贡献!"); System.out.println("谢谢观看隋唐演义,再见!"); }查看全部
-
二.stage.java /** * 隋唐演义大戏舞台 */ public class Stage extends Thread { public void run(){ ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable(); ArmyRunnable armyTaskOfRevolt = new ArmyRunnable(); //使用Runnable接口创建线程 Thread armyOfSuiDynasty = new Thread(armyTaskOfSuiDynasty,"隋军"); Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"农民起义军"); //启动线程,让军队开始作战 armyOfSuiDynasty.start(); armyOfRevolt.start(); //舞台线程休眠,大家专心观看军队厮杀 try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } //停止军队作战 //停止线程的方法 armyTaskOfSuiDynasty.keepRunning = false; armyTaskOfRevolt.keepRunning = false; }查看全部
-
一、ArmyRunnable.java volatile boolean keepRunning = true; //volatile保证了线程可以正确的读取其他线程写入的值 //可见性 ref JMM, happens-before原则 -------------------------------------------------------------------------------------------- //军队线程 //模拟作战双方的行为 public class ArmyRunnable implements Runnable { //volatile保证了线程可以正确的读取其他线程写入的值 //可见性 ref JMM, happens-before原则 volatile boolean keepRunning = true; @Override public 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()+"结束了战斗!"); } }查看全部
-
CPU一次只能處理一個線程,所以兩個線程交替進行查看全部
-
三.actress線程 class Actress implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()+"是一个演员!"); int count = 0; boolean keepRunning = true; while(keepRunning){ System.out.println(Thread.currentThread().getName()+"登台演出:"+ (++count)); if(count == 100){ keepRunning = false; } if(count%10== 0){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } System.out.println(Thread.currentThread().getName()+"的演出结束了!"); }查看全部
-
二.線程的休眠 public void run(){ //getname用來獲取當前線程的名稱 System.out.println(getName()+"是一个演员!"); int count = 0;//記錄線程出現的次數 boolean keepRunning = true; while(keepRunning){ System.out.println(getName()+"登台演出:"+ (++count)); if(count == 100){ keepRunning = false; } if(count%10== 0){ try { Thread.sleep(1000);//休眠1s } catch (InterruptedException e) { e.printStackTrace(); } } } System.out.println(getName()+"的演出结束了!"); }查看全部
-
public class Actor extends Thread { public void run(){ //getname用來獲取當前線程的名稱 System.out.println(getName()+"是一个演员!"); int count = 0;//記錄線程出現的次數 boolean keepRunning = true; System.out.println(getName()+"登台演出:"+ (++count)); public static void main(String[] args){ Thread actor = new Actor(); actor.setName("Mr. Thread"); actor.start(); } }查看全部
-
總結框架查看全部
-
故事舞台的線程查看全部
-
關鍵人物的線程查看全部
举报
0/150
提交
取消