我想要的只是同时执行三种或更多方法
我不是指Threads,因为我已尝试过线程,但它只是一次执行一个方法
public void run() {
System.out.println("Running " + threadName );
try {
for(int i = 4; i > 0; i--) {
System.out.println("Thread: " + threadName + ", " + i);
// Let the thread sleep for a while.
Thread.sleep(50);
}
}catch (InterruptedException e) {
System.out.println("Thread " + threadName + " interrupted.");
}
System.out.println("Thread " + threadName + " exiting.");
}
在这段代码中,一个方法将执行,然后等待执行另一个方法
但我想要的是让三个方法同时执行。
有可能吗?如果是我怎么做,从哪里开始?
答案 0 :(得分:3)
您可能已尝试过线程,但听起来如果每个方法单独运行,您都没有正确尝试它们。尝试这样的事情:
public static void someMethod(int i) {
String me = Thread.currentThread().getName();
Random r = new Random();
while (i-- >= 0) {
System.out.println(me + ": i=" + i);
try {
// sleep some random time between 50 and 150 ms
Thread.sleep(r.nextInt(100) + 50);
} catch (InterruptedException e) {
System.out.println(me + " interrupted");
return;
}
}
System.out.println(me + " exiting");
}
public static void main(String[] args) {
int numThreads = 4;
for (int i = 0; i < numThreads; ++i) {
new Thread("Thread " + i) {
@Override public void run() { someMethod(10); }
}.start();
}
}
您将看到someMethod
的输出混合在一起的所有线程。每次运行代码时它都应该不同。