Ism*_*hin 1 java multithreading
我想知道是否可以定义将被调用的函数Thread's run.它可以通过使用if语句来完成,但是有更好的方法吗?
可能的解决方案
public class WorkerThread extends Thread {
private String functionToCall = null;
public WorkerThread(String functionToCall) {
this.functionToCall = functionToCall;
}
public void run() {
if (functionToCall.equals("func1"))
func1();
else if (functionToCall.equals("func2"))
func2();
}
private void func1() {
}
private void func2() {
}
}
Run Code Online (Sandbox Code Playgroud)
是Runnable的,根据您要运行的内容,将不同的对象传递给构造函数.像这样:
new Thread(myRunnable1);
Run Code Online (Sandbox Code Playgroud)
要么
new Thread(myRunnable2);
Run Code Online (Sandbox Code Playgroud)
那你就不需要WorkerThread上课了.