gpt4 book ai didi

java - 随机化线程 sleep

转载 作者:行者123 更新时间:2023-12-01 18:51:15 27 4
gpt4 key购买 nike

我在可运行的 run 方法中有以下代码:

@Override
public void run(){
final Random r=new Random(1000);
int acquired=0;
try{
while(acquired < 1){
for(int i=0;i<sems.length;i++){
if(sems[i].tryAcquire()){
System.out.println("Acquired for " + i);
Thread.sleep(r.nextInt());
sems[i].increment();
sems[i].release();
acquired=1;
break;
}
}
}

}
catch(InterruptedException x){}

}

执行后不久我不断收到以下异常:

Exception in thread "Thread-2" java.lang.IllegalArgumentException: timeout value is negative
at java.lang.Thread.sleep(Native Method)
at com.bac.jp.fourteenth$1.run(fourteenth.java:24)
at java.lang.Thread.run(Unknown Source)
Exception in thread "Thread-0" java.lang.IllegalArgumentException: timeout value is negative
at java.lang.Thread.sleep(Native Method)
at com.bac.jp.fourteenth$1.run(fourteenth.java:24)
at java.lang.Thread.run(Unknown Source)

但是,如果我使用 Thread.sleep(1000) 程序运行正常。为什么我无法使用 java Random 随机化暂停?

最佳答案

use r.nextInt(1000)//返回 0-999 之间的数字...这解决了负返回问题

关于java - 随机化线程 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15858229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com