如果必须由多个线程执行单个任务,则只有通过run()
方法。例如:
由多个线程执行单个任务的程序。
package com.yiibai;
class TestMultitasking1 extends Thread {
public void run() {
System.out.println("task one");
}
public static void main(String args[]) {
TestMultitasking1 t1 = new TestMultitasking1();
TestMultitasking1 t2 = new TestMultitasking1();
TestMultitasking1 t3 = new TestMultitasking1();
t1.start();
t2.start();
t3.start();
}
}
Java
执行上面示例代码,得到以下结果:
task one
task one
task one
Shell
多个线程执行单个任务的程序 -
package com.yiibai;
class TestMultitasking2 implements Runnable {
public void run() {
System.out.println("task one");
}
public static void main(String args[]) {
Thread t1 = new Thread(new TestMultitasking2());// passing annonymous object of TestMultitasking2 class
Thread t2 = new Thread(new TestMultitasking2());
t1.start();
t2.start();
}
}
Java
执行上面示例代码,得到以下结果:
task one
task one
Shell
注意: 每个线程都在一个单独的调用堆栈中运行。
如何通过多线程执行多个任务(多线程中的多任务处理)?
如果想要通过多个线程执行多个任务,请使用多个run()
方法。例如:
通过两个线程执行两个任务的程序 -
package com.yiibai;
class Simple1 extends Thread {
public void run() {
System.out.println("task one");
}
}
class Simple2 extends Thread {
public void run() {
System.out.println("task two");
}
}
class TestMultitasking3 {
public static void main(String args[]) {
Simple1 t1 = new Simple1();
Simple2 t2 = new Simple2();
t1.start();
t2.start();
}
}
Java
执行上面示例代码,得到以下结果:
task two
task one
Shell
使用扩展Thread类的匿名类相同的例子:
通过两个线程执行两个任务的程序 -
class TestMultitasking4 {
public static void main(String args[]) {
Thread t1 = new Thread() {
public void run() {
System.out.println("task one");
}
};
Thread t2 = new Thread() {
public void run() {
System.out.println("task two");
}
};
t1.start();
t2.start();
}
}
Java
执行上面示例代码,得到以下结果:
task two
task one
Shell
使用实现Runnable接口的相同例子:
通过两个线程执行两个任务的程序 -
class TestMultitasking5{
public static void main(String args[]){
Runnable r1=new Runnable(){
public void run(){
System.out.println("task one");
}
};
Runnable r2=new Runnable(){
public void run(){
System.out.println("task two");
}
};
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
t1.start();
t2.start();
}
}
Java
执行上面示例代码,得到以下结果:
task two
task one
原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/java_multithreading/multitasking-in-multithreading.html