更新時間:2022-09-26 09:51:18 來源:動力節(jié)點 瀏覽2348次
java的進(jìn)程調(diào)度算法是什么?小編來告訴大家。
Process(進(jìn)程類),主要用來實例化各個不同的進(jìn)程
ProcessBlock(進(jìn)程控制塊類),用來為每個進(jìn)程分配PCB,該類實例化后為進(jìn)程類的類成員變量
ProcessControl(進(jìn)程控制類),為主類,用來調(diào)度進(jìn)程。
其中,在進(jìn)程調(diào)度中,聲明了三個隊列,分別為待插入進(jìn)程隊列(按到達(dá)時間從小到大排序),就緒隊列(按優(yōu)先級從大到小排序,按照到達(dá)時間先后進(jìn)行排序),完成隊列。都ArrayList類型變量。
程序開始時隨機(jī)為初始化5個進(jìn)程(程序太多不容易觀察運行結(jié)果)
聲明時間變量t,while循環(huán)下調(diào)度程序一直運行,每運行一次,t++
然后循環(huán)判斷待插入隊列隊首進(jìn)程是否到達(dá),若到達(dá),則將該進(jìn)程插入到就緒隊列中,并從待插入隊列刪除該進(jìn)程;若沒有到達(dá),則從該循環(huán)中跳出
然后從就緒隊列中取出隊首進(jìn)程并分配時間片。當(dāng)該進(jìn)程時間片用完后,判斷該進(jìn)程是否已經(jīng)完成,若完成,則將該進(jìn)程插入到完成隊列;若沒有完成,則將該進(jìn)程的優(yōu)先級減一并重新插入到就緒隊列中
一直重復(fù)該循環(huán),一直到待插入隊列和就緒隊列都為空為止

通過上述介紹,相信大家對什么是Java進(jìn)程調(diào)度算法已經(jīng)有所了解,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下本站的Java多線程編程,里面有更豐富的知識等著大家去學(xué)習(xí),相信對大家一定會有所幫助的。