gpt4 book ai didi

java - 如何在一个类中处理多个线程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:48 24 4
gpt4 key购买 nike

线程通常以两种方式设计 (see java tutorials):通过扩展 Thread 类或通过实现 Runnable 类。无论哪种方式,您都需要指定将在线程内运行的内容。

我设计了一个类,一个针对在线资源的适配器,用于检索不同类型的信息。此类由 getInformationOfTypeA() 和 getInformationOfTypeB() 等方法组成。两者都包含连接到在线资源的代码,因此都需要线程化以避免死锁。

问题是:我应该如何设计这个?我可以像下面那样做,但是我只能实现一种方法:

public class OnlineResourceAdapter implements Runnable {

public void run() {
//get stuff from resource
getInformationOfTypeA();
}

public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter ())).start();
}

public void getInformationOfTypeA(){
//get information of type A
}

public void getInformationOfTypeB(){
//get information of type B
}

}

另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然。

顺便说一句:我正在用 j2me 开发我的应用程序

更新:

感谢您的回复,我认为最适合使用如下方法:

你怎么看这个:

public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}

public void getInformationOfTypeB(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}
}

你怎么看这个?

最佳答案

在我看来,您实际上应该有两个不同的类:InformationOfTypeAFetcherInformationOfTypeBFetcher,每个类都应该实现 Runnable。他们每个人都可能引用您的 OnlineResourceAdapter(或类似的东西)的实例,但如果他们做不同的事情,他们应该是不同的类。

关于java - 如何在一个类中处理多个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081747/

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