「java多线程随机数」java生成随机数

博主:adminadmin 2023-01-13 00:51:09 497

本篇文章给大家谈谈java多线程随机数,以及java生成随机数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java多线程中随机数重复

java中要使生成的随机数不重复可以将已经生成的随机数放入到数组中

java线程随机数

提供个我的思路,个人觉得你的基本思路完全没有问题,就是可能不知道10个线程怎么处理,我个人建议是10个线程同时启动,然后另外写一个锁的类,用于锁线程,里面存放一个boolean型变量,10个线程的执行都依赖这把锁,并且全部判断这个变量的值,如果不符合就不输出,所以你只要保证同时只有一个线程能获取到锁并且结束完成一定会修改状态,这样应该就可以了

java获取随机数

很多朋友都想知道java怎么获取随机数?下面就一起来了解一下吧~

Java中的随机数的有三种产生方式:

(01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

(02). 通过Math.random()返回一个0到1之间的double值。

(03). 通过Random类来产生一个随机数。

第1种

通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:

final long l = System.currentTimeMillis();

若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:

final long l = System.currentTimeMillis();final int i = (int)( l % 100 );

第2种

通过Math.random()来获取随机数。实际上,它返回的是0(包含)到1(不包含)之间的double值。使用方法如下:

final double d = Math.random();

若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:

final double d = Math.random();final int i = (int)(d*100);

第3种

通过Random类来获取随机数。

使用方法如下:

(01) 创建Random对象。有两种方法可以创建Random对象,如下:

Random random = new Random();//默认构造方法Random random = new Random(1000);//指定种子数字

(02) 通过Random对象获取随机数。Random支持的随机值类型包括:boolean, byte, int, long, float, double。

比如,获取[0, 100)之间的int整数。方法如下: int i2 = random.nextInt(100);

JAVA采用实现Runnable接口的多线程技术,用50个线程,生成10000个[1-1000]间的随机整数。

public class RandomNumber implements Runnable {

private final byte[] lock; // 同步对象锁

private Random random; // 用于生成随机数

private int sum; // 用于计算产生的随机数总数

public RandomNumber() {

lock = new byte[1];

random = new Random();

}

@Override

public void run() {

while (true) {

int rd = random.nextInt(1001); // 产生0 - 10000的随机数

if (rd == 0) {

continue;

} else {

if (sum = 10000) {

return;

}

try {

Thread.sleep(1); // 为了效果更明显,当前线程睡1毫秒

} catch (InterruptedException e) {

e.printStackTrace();

}

synchronized (lock) {

// 获取到对象锁之后,需要判断sum的大小,因为此时sum可能已经为10000了

if (sum 10000) {

sum++;

System.out.println(Thread.currentThread().getName()

+ " - 第" + sum + "个随机数:" + rd);

}

}

}

}

}

// main测试函数

public static void main(String[] args) throws Exception {

RandomNumber rn = new RandomNumber();

// 循环产生50个线程

for (int i = 0; i 50; i++) {

new Thread(rn).start();

}

}

}

有问题再追问,一起学习探讨

java中实现runnable接口多线程技术,用五个线程,生成100个1到1000的随机数

// 纯手打 希望采纳:)

public class Main

{

private static int num = 1;

public static void main(String[] args)

{

Thread a = new Thread(new RandomRunnable("A"));

Thread b = new Thread(new RandomRunnable("B"));

Thread c = new Thread(new RandomRunnable("C"));

Thread d = new Thread(new RandomRunnable("D"));

Thread e = new Thread(new RandomRunnable("E"));

a.start();

b.start();

c.start();

d.start();

e.start();

}

public static void add(String name)

{

synchronized (Main.class)

{

if (num  101)

{

System.out.println("线程" + name + "随机数:"

+ (1 + (int) (Math.random() * 1000) + " " + num));

num++;

}

}

}

public static int getNum()

{

return num;

}

}

class RandomRunnable implements Runnable

{

private String name;

public RandomRunnable(String name)

{

this.name = name;

}

public void run()

{

while(Main.getNum()  101)

{

Main.add(name);

}

}

}

java让三个线程随机顺序执行?

1:第一步,生成一个随机数

比如:1-100 之间随机生成一个随机数

int max=100,min=1;

int ran2 = (int) (Math.random()*(max-min)+min);

2:第二步, 在线程执行前--添加 Thread.sleep(随机数)。

Thread.sleep(ran2);

关于java多线程随机数和java生成随机数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。