線程運(yùn)行規(guī)則?
為什么我運(yùn)行以后是 男演員第0次 男演員第1次 男演員第2次 男演員第3次 男演員第4次 女演員第0次 男演員第5次 女演員第1次 女演員第2次 男演員第6次 是電腦配置(雙核之類的區(qū)別)導(dǎo)致的線程運(yùn)行不一樣嗎?
為什么我運(yùn)行以后是 男演員第0次 男演員第1次 男演員第2次 男演員第3次 男演員第4次 女演員第0次 男演員第5次 女演員第1次 女演員第2次 男演員第6次 是電腦配置(雙核之類的區(qū)別)導(dǎo)致的線程運(yùn)行不一樣嗎?
2016-03-24
舉報(bào)
2016-04-09
線程的原理是,把CPU的一個(gè)核心,在時(shí)間上分成很多極短的時(shí)間片,每個(gè)時(shí)間片處理一個(gè)線程的一部分,當(dāng)一個(gè)時(shí)間片完成后,下一個(gè)時(shí)間片可能選擇任何一個(gè)有條件運(yùn)行的線程來(lái)執(zhí)行。
例如,有a,b兩個(gè)線程,各自有10個(gè)語(yǔ)句,記為a1-a10和b1-b10,且都沒有阻塞
假如我們執(zhí)行
因?yàn)閍先start,通常會(huì)先執(zhí)行a1,當(dāng)a1執(zhí)行完,且b也已經(jīng)start過后,下一個(gè)可能執(zhí)行a2,也可能執(zhí)行b1,具體執(zhí)行誰(shuí)由程序本身根據(jù)CPU狀況決定,程序員無(wú)法指定。因此像是視頻中的程序,哪怕是在同一臺(tái)電腦上,每次運(yùn)行結(jié)果也可能不同。
2016-03-24
因?yàn)榫€程運(yùn)行需要爭(zhēng)用CPU,因此每次運(yùn)行的結(jié)果都有可能不同,同一臺(tái)電腦尚且如此,不同的電腦,不同的CPU就更不用說(shuō)了