1.继承Thread类。重写里面的run()方法。2.实现Runnable接口,重写run()方法。
3.实现Callable()接口,重写call()方法。
package edu.sdut.thread;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
class Thread1 implements Callable<String>{
@Override
public String call() throws Exception {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
}
return null;
}
}
public class ThreadDemo01 {
public static void main(String[] args) {
FutureTask<String> f1 = new FutureTask<>(new Thread1());
FutureTask<String> f2 = new FutureTask<>(new Thread1());
FutureTask<String> f3 = new FutureTask<>(new Thread1());
Thread t1 = new Thread(f1);
Thread t2 = new Thread(f2);
Thread t3= new Thread(f3);
t1.start();
t2.start();
t3.start();
}