gpt4 book ai didi

java - 如何在java类中放置一个可运行的线程

转载 作者:行者123 更新时间:2023-12-01 14:05:42 24 4
gpt4 key购买 nike

首先,我以前从未使用过线程,所以请原谅任何不严谨的术语。我有三个相似但不同的类,所有这些类都需要从互联网读取信息,因此我想创建一个在后台运行的线程,而程序使用其在线内容的本地副本。但是,每个类都需要自己的特殊输入,因此我无法创建一个主要的可运行类。

问题:我应该创建三个独立的线程,每个程序一个,还是可以在每个类中嵌入一个可运行线程?我该怎么做?

感谢您的帮助

ps。如果您想查看我的程序(至少是它的一个版本),请访问 jacobfakult.50webs.com/quizzes/program...抱歉广告,再次感谢!

最佳答案

我不会给你一个直接的答案,因为你以前从未使用过线程,所以我建议首先阅读有关此主题的内容。这是官方资源:Lesson: ConcurrencyExecutors .

阅读完所有内容后,您现在将了解您想要使用 ExecutorService它会为你处理线程。现在唯一重要的是当前的应用程序设计,它将在每个线程上完成工作,在本例中,从互联网下载内容。

简单方法:让三个(或更多)类实现Runnable接口(interface)并在run方法中完成所有工作。示例:

public class Foo implements Runnable {
@Override
public void run() {
doWork();
}
public void doWork() {
//download files or whatever you want/need to do
}
}

public class BigWorker {
private static final int NUM_OF_THREADS = 3;
public void doWork() {
ExecutorService es = Executors.newFixedThreadPool(NUM_OF_THREADS);
es.execute(new Foo());
//assuming Bar and Baz are the other two classes...
es.execute(new Bar());
es.execute(new Baz());
//it is A MUST to call this method
es.shutdown();
}
}

关于java - 如何在java类中放置一个可运行的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924665/

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