多線程實現的三個方法

(1)繼承Thread累,重寫run()方法;

package com.mythread.test;


class MyThread extends Thread{
@Override
public void run() {
System.out.println("Thread body");
}

}

package com.mythread.test;


public class Test {


public static void main(String[] args) {
MyThread my=new MyThread();
my.start();
}


}

(2)實現Runnable接口,實現run()方法;

package com.mythread.test;


class MyThread1 implements Runnable{


@Override
public void run() {
System.out.println("Thread body");
}
}

package com.mythread.test;

public class Test1 {

public static void main(String[] args) {
MyThread1 myThread1=new MyThread1();
Thread t=new Thread(myThread1);
t.start();
}
}

(3)實現接口,重寫call()方法。

package com.mythread.test;


import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;


public class CallableAndFuture {

public static class CallableTest implements Callable<String>{


@Override
public String call() throws Exception {
// TODO Auto-generated method stub
return "Hello World!";
}

}


public static void main(String[] args) {
ExecutorService thread=Executors.newSingleThreadExecutor();
Future<String> future=thread.submit(new CallableTest());
try{
System.out.println("waiting thread to finish");
System.out.println(future.get());
}catch(Exception e){
e.printStackTrace();
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章