![](/img/trans.png)
[英]Java: how to generate a new thread? Not how to generate a new thread to use
[英]How to use multiple thread to generate data?
我尝试使用多个线程生成数据集
我尝试在下面创建一个Runnable和几个线程
public class DataGenerator {
static int currentRow = 0 ;
static PrintWriter pw ;
public static void main(String[] args) throws FileNotFoundException {
File file = new File("Test3.csv") ;
pw = new PrintWriter(file);
pw.println("var1,var2,var3") ;
Thread t1 = new Thread(new MyRunnable()) ;
Thread t2 = new Thread(new MyRunnable()) ;
t1.start();
t2.start();
t1.join();
t2.join();
pw.close();
System.exit(0) ;
}
}
class MyRunnable implements Runnable {
public void run () {
for ( int i = DataGenerator.currentRow; i < 50000000; DataGenerator.currentRow ++ ) {
DataGenerator.pw.println(i + ",19:05.1,some text");
System.out.println(i);
}
}
}
但是正在循环o
我不知道为什么
在子线程t1
和t2
可以使用它打印之前,您的父线程将关闭PrintWriter pw
。 启动子线程后,需要让父线程调用wait()
。
您应该查看如何使Java线程等待另一个线程的输出的答案? 寻求帮助。 您可以使用此信息从代码角度发现如何解决此问题。 这很简单。
注意:自发布此答案以来,您已经编辑了问题; 以下问题的答案更为相关: 等待子线程完成:Java
您应该阅读的其他有用的SO问题以及适用的答案:
另请参见Java并发教程 。
当启动线程时,它将使线程在其自己的线程中启动。 所以发生的事情是,它启动了线程,然后在线程有机会启动之前直接进入下一个调用pw.close()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.