1、继承Thread
public class ThreadCreateTest {
public static class ThreadTest001 extends Thread{
@Override
public void run(){
for(int i=0; i<1000; i++) {
// try {
// TimeUnit.MILLISECONDS.sleep(1);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
System.out.println("Thread");
}
}
}
2、实现Runnable
public static class ThreadTest002 implements Runnable{
@Override
public void run(){
for(int i=0; i<1000; i++) {
// try {
// TimeUnit.MILLISECONDS.sleep(1);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
System.out.println("Runnable");
}
}
}
3、实现Callable
public static class ThreadTest003 implements Callable {
@Override
public Object call() throws Exception {
for(int i=0; i<1000; i++) {
// try {
// TimeUnit.MILLISECONDS.sleep(1);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
System.out.println("Callable");
}
return "Callablevalue";
}
}
测试方法
public static void main(String[] args) throws ExecutionException, InterruptedException {
Thread thread1 = new ThreadTest001();
thread1.start();
Thread thread2 = new Thread(new ThreadTest002());
thread2.start();
FutureTask<String> futureTask = new FutureTask<>(new ThreadTest003());
Thread thread3 = new Thread(futureTask);
thread3.start();
for(int i=0; i<100; i++) {
try {
TimeUnit.MILLISECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("main");
}
System.out.println(futureTask.get());
}
}