我试图理解Java中的多线程执行。我想要一个“控制器”类A和一个“并行执行”类B.从逻辑上讲,我希望有一个类A的新对象启动一个新的B类对象在一个单独的线程中执行。
我应该让B类扩展Thread类,还是有更多当前可接受的方法。下面是一些非常粗略的伪代码。
public class A {
...
Class B() // call class B
...
}
public class B extends Thread {
public void run(){
//some code
}
}
答案 0 :(得分:1)
我不是Class B()
的意思。如果您的意思是执行run
Class B
方法。尝试类似下面的内容。
public class A {
public static void someMethod(){
B b = new B();
b.start();
}
public static void main(String[] args)
{
someMethod();
}
}
public class B extends Thread{
public void run()
{
//logic comes here
}
}
但是,并不总是建议扩展线程,因为你不能扩展多个类。
您可以实现Runnable接口,这允许B扩展任何类并实现其他接口。
public class A {
public void someMethod(){
B b = new B();
Thread t = new Thread(b);
t.start()
}
public static void main(String[] args)
{
someMethod();
}
}
//Now below class can extend any other class
public class B implements Runnable{
public void run()
{
//logic comes here
}
}
希望这有帮助。
答案 1 :(得分:0)
你应该像这样执行B
:
B b=new B();
b.start();
这将执行run
方法并继续同时运行
答案 2 :(得分:0)
用于创建要在一个或多个并行执行会话中运行的对象的类的现代范例是:
Runnable
通过调用线程
上的start方法启动新的并行活动Runnable myRunnable = new Parallel(arguments);
Thread workerThread= new Thread(myRunnable);
//now do the work
workerThread.start();
当你有一个实现Runnable的类时,它必须覆盖方法run()。