您不能像在您的帖子中那样调用不同的方法。你可以做的是调用不同的类:
public static void main(String args[]){
Thread nameThread1 = new Thread(new Method1(x));
nameThread1.start();
Thread nameThread2 = new Thread(new Method2(x));
nameThread2.start();
Thread nameThread3 = new Thread(new Method3(x));
nameThread3.start();
Thread nameThread4 = new Thread(new Method4(x));
nameThread4.start();
Thread nameThread5 = new Thread(new Method5(x));
nameThread5.start();
}
public class Method1 implements Runnable {
private Object obj;
public Method1(Object obj) {
this.obj = obj;
}
//fileName.java
public void run(){
//Do Method Stuff
}
}
您应该始终考虑使用创建ExecutorService
代码来管理这样的作业。例如:
// create a thread pool with 10 workers
ExecutorService threadPool = Executors.newCachedThreadPool();
threadPool.submit(new Method1(x));
threadPool.submit(new Method2(x));
...
// once we have submitted all jobs to the thread pool, it should be shutdown
threadPool.shutdown();
如果您必须使用一个类,那么您可以启动一个Runnable
使用开关或其他东西的类:
public static void main(String args[]){
Thread nameThread1 = new Thread(new Method(1, x));
nameThread1.start();
Thread nameThread2 = new Thread(new Method(2, x));
nameThread2.start();
...
}
public class Method1 implements Runnable {
private int which;
private Object obj;
public Method1(int which, Object obj) {
this.which = which;
this.obj = obj;
}
//fileName.java
public void run(){
switch(which) {
case 1:
doMethod1(obj);
break;
case 2:
doMethod2(obj);
break;
...
}
}
private void doMethod1(Object obj){
...
}
private void doMethod2(Object obj){
...
}
}
但是执行者或单独的Runnable
类会更干净。