作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了两个线程:一个用于填充数组,第二个用于打印它。看起来两个线程不能同时工作。
当我运行代码时,它的打印第一个线程工作,然后打印数组,第二个线程工作,我如何知道它们是否同时工作?
这是我的代码:
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/
我是一名优秀的程序员,十分优秀!