📄 simproc.java
字号:
import java.util.Random ;class SimProc extends Thread { private Scheduler mySched ; private int count ; private static Random threadSeed = new Random() ; private static long getSeed() { return 1 + threadSeed.nextLong() ; } public SimProc(Scheduler sch, String name, int i) { super(name) ; mySched = sch ; count = i ; start() ; } public int getCount() { return count ; } private int collatz(int i) { int ans = 0 ; while (i != 1) { if (i <= 0) return -1 ; // numbers get too big! ans++ ; if (i % 2 == 0) i /= 2 ; else i = i*3 + 1 ; } return ans ; } private void addToReadyQueue() { mySched.addProcess(this) ; } private void removeFromReadyQueue() { mySched.removeProcess(this) ; mySched.endSlice(this) ; // want something else to run! } public void run() { addToReadyQueue() ; Random myrand = new Random(getSeed()) ; while(count > 0) { mySched.endSlice(this) ; int k = Math.abs(myrand.nextInt()) ; int ans = collatz(k) ; if (ans > 0) count-- ; System.out.println("This is " + getName() + " - Collatz of " + k + " is " + ans) ; } removeFromReadyQueue() ; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -