gpt4 book ai didi

java多线程(newCachedThreadPool),然后将结果写入一个文件?

转载 作者:行者123 更新时间:2023-12-02 08:20:58 27 4
gpt4 key购买 nike

我尝试使用简单的线程来做到这一点并成功了,但我相信使用线程池我可以更有效地完成同样的事情:)?简单线程:

public static class getLogFile implements Runnable {
private String file;

public void setFilename(String namefile){
file=namefile;
}
public int run1(String Filenamet) {

connectToServer(XXX, Filenamet, XXX, XXX, XXX, XXX);//creates a file and downloads it

return 0;
}

public void run() {
run1(file);
}

}

in main:
for(x=0 ; x < 36 ; x++){
String Filename1=Filename+x;
getLogFile n=new getLogFile();
n.setFilename(Filename1);
(new Thread(n)).start();

}

程序连接到服务器同时执行 36 个命令(使用线程池/简单线程?!),然后下载 36 个结果文件,然后合并它们,或者它可能只写入服务器上的一个文件然后下载它?

  1. 如何将此代码转换为线程池?
  2. 如何从 36 个线程将数据写入一个文件?

最佳答案

我只能为你提供方向。

为了使用线程池,看看ServiceExecutor是如何工作的。谷歌的任何例子都会给你足够的信息。举个例子看看: http://www.deitel.com/articles/java_tutorials/20051126/JavaMultithreading_Tutorial_Part4.html

关于将 36 个线程写入其自己的文件,或写入一个文件。我不能说关于多个线程写入同一个文件的任何事情,但您可以使用 CyclicBarrier 来等待所有线程完成写入时的事件。您可以在这里找到其使用示例: http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CyclicBarrier.html

关于java多线程(newCachedThreadPool),然后将结果写入一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458608/

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