亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么運行時前幾次那么亂呢,一會先生一會女士。不規律

package com.xuanxuan;


public class Actor extends Thread {

public void run() {

System.out.println(getName()+"是一個演員");

int count=0;

boolean keepRuning=true;

while(keepRuning) {

System.out.println(getName()+"登臺演出"+(++count));

if(count==100) {

keepRuning=false;

}

if(count%10==0) {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

System.out.println(getName()+"演出結束了");

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Thread actor=new Actor();

actor.setName("先生");

Thread actressThread=new Thread(new Actress(),"xiaoxiaoxiao女士");

actor.start();

actressThread.start();

}


}

class Actress implements Runnable{

public void run() {

System.out.println(Thread.currentThread().getName()+"是一個演員");

int count=0;

boolean keepRuning=true;

while(keepRuning) {

System.out.println(Thread.currentThread().getName()+"登臺演出"+(++count));

if(count==100) {

keepRuning=false;

}

if(count%10==0) {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

System.out.println(Thread.currentThread().getName()+"演出結束了");

}

}

https://img1.sycdn.imooc.com//5cbed89900010a5903580808.jpg

正在回答

2 回答

學了操作系統,你應該知道一些進程調度算法吧。先生在調用Thread.sleep(1000)后,表明 在接下來的 1000ms內 先生不參與CPU的競爭,1000ms結束時,cpu并不一定分配給先生,因為windows 的操作系統采用的是 搶占式進程調度算法,進程的優先級 根據等待時間或其它因素 是動態變化的,這時候可能會有 其它進程的優先級比“先生”高,因此先生只能等著。因為 先生 和 女士 的優先級不停變化,所以可能會不規律的被調度。

0 回復 有任何疑惑可以回復我~

兩個線程爭奪cpu資源,可以參考https://blog.csdn.net/u014360189/article/details/45182277

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么運行時前幾次那么亂呢,一會先生一會女士。不規律

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號