gpt4 book ai didi

java - 如何让两个线程同时工作

转载 作者:行者123 更新时间:2023-12-01 18:40:37 26 4
gpt4 key购买 nike

我创建了两个线程:一个用于填充数组,第二个用于打印它。看起来两个线程不能同时工作。

当我运行代码时,它的打印第一个线程工作,然后打印数组,第二个线程工作,我如何知道它们是否同时工作?

这是我的代码:

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
firstthread f=new firstthread();
secondthread s=new secondthread();

s.start();
f.start();
}

}

并且该类包含填充和打印方法:

public class Array {
private static int [] ar=new int[500];

public static void fillarray()
{
for (int i = 0; i < ar.length; i++)
ar[i]=i;
}

public static void printarray()
{
for (int i = 0; i < ar.length; i++)
System.out.print(ar[i]+" ");
}
}

第一个线程类:

    public class firstthread extends Thread{

public void run() {

Array.fillarray();
System.out.print("first thread working ");

}

}

第二个线程类:

    public class secondthread extends Thread{


public void run() {

Array.printarray();

System.out.println("second array working");
}

}

最佳答案

fillarray 和 printarray 方法运行得太快,因此您无法获得线程。

将 Thread.sleep(10) 添加到每个循环中。这样,代码运行速度会慢得多,并且线程会分散。他们可能会交替使用这种方法。

然后改为 sleep 随机的秒数,您会看到不同的行为。

关于java - 如何让两个线程同时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062087/

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