线程通常以两种方式设计(请参阅java教程 http://java.sun.com/docs/books/tutorial/essential/concurrency/runthread.html):通过扩展 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 中开发我的应用程序
UPDATE:
感谢您的回复,我认为最适合使用如下方法:
你觉得这怎么样:
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();
}
}
你觉得这怎么样?
在我看来,你实际上应该有两个不同的课程:InformationOfTypeAFetcher
and InformationOfTypeBFetcher
,其中每一个都应该实现Runnable
。他们每个人都可能引用您的一个实例OnlineResourceAdapter
(或类似的东西)但如果他们做不同的事情,他们应该是不同的班级。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)