使线程睡眠为随机数量的MS

2022-09-02 02:33:28

嘿,所以我有3个线程,当他们打印出一些东西时,它们有一定的条件。这工作正常。我现在想做的是在线程输出某些内容之前制作线程,以将其发送到随机毫秒的睡眠状态。我正在考虑使用数学课,但不知道如何。

random() 应该生成大于或等于 0.0 且小于 1.0 的随机双精度,对吗?

我会写这样的东西吗

Thread.sleep(random());

^ 虽然尝试过,但不起作用


答案 1

Thread.sleep() 采用的值不是 。您需要在此处进行类型转换:-longdouble

Thread.sleep((long)(Math.random() * 1000));

答案 2

Thread.sleep() 取一个值,即进入睡眠状态的毫秒数。在零和 1 之间传递浮点值将不起作用,因为该值将始终被截断为零。long

要解决此问题,请从适当的范围生成一个随机整数,并将其传递给 。Thread.sleep()

例如,要睡一秒钟,请使用 。此处,是 Random 类型的对象。Thread.sleep(random.nextInt(1000));random


推荐