多线程基础一之(线程的3种实现方式)

Posted on 2018-11-03 23:35  FLGB  阅读(131)  评论(0编辑  收藏  举报

实现线程的三种方式:

   (1)继承Thread类,重写Run方法 

class MyThreadDemo extends Thread {
@Override
public void run() {
System.out.println("This is my Thread!");
}
public static void main(String[] args) {
MyThreadDemo thread = new MyThreadDemo();
thread.start();
}
}

(2)实现Runnable接口,重写Run方法
class RunnableThread implements Runnable{

@Override
public void run() {
System.out.println("This is my RunnableThread!");
}
public static void main(String[] args) {
Thread thread = new Thread(new RunnableThread());
thread.start();
}
}
(3)实现callable接口,重写call()方法,并带返回值
public class CallableDemo implements Callable<String> {

public static void main(String[] args) throws Exception{

ExecutorService executorService = Executors.newCachedThreadPool();
CallableDemo callableDemo = new CallableDemo();
Future<String> future = executorService.submit(callableDemo);
//call未执行完
//放一些其他业务逻辑的处理
System.out.println(future.get());//阻塞
executorService.shutdown();
}
@Override
public String call() throws Exception {
return "String"+1;
}
}
 

Copyright © 2024 FLGB
Powered by .NET 8.0 on Kubernetes