多线程之创建线程有哪几种方式?

2019-08-16 10:17:26来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

多线程之创建线程有哪几种方式?

这个问题一般会出现在面试当中,多线程创建有哪几种方式呢?
答:实现Runable接口和实现Thread类。

我们先看看看实现这两种的实现方式

 1 package com.summer;
 2 
 3 public class ThreadA implements Runnable {
 4 
 5     public void run() {
 6         System.out.println("start ThreadA!");
 7     }
 8 
 9     public static void main(String[] args) {
10         Thread thread = new Thread(new ThreadA());
11         thread.start();
12     }
13 }

 

 1 package com.summer;
 2 
 3 public class ThreadB extends Thread {
 4 
 5     @Override
 6     public void run() {
 7         System.out.println("start ThreadB!");
 8     }
 9 
10     public static void main(String[] args) {
11         ThreadB threadB = new ThreadB();
12         threadB.start();
13     }
14 }

 

那么除了这两种方式以外还有什么其他方式呢?

答:可以实现Callable接口和线程池来创建线程。

 1 package com.summer;
 2 
 3 import java.util.concurrent.Callable;
 4 import java.util.concurrent.FutureTask;
 5 
 6 public class ThreadC implements Callable {
 7 
 8     public Object call() throws Exception {
 9         System.out.println("start ThreadC!");
10         return null;
11     }
12 
13     public static void main(String[] args) {
14         ThreadC threadC = new ThreadC();
15         FutureTask futureTask = new FutureTask(threadC);
16         Thread thread = new Thread(futureTask);
17         thread.start();
18     }
19 }

 

 1 package com.summer;
 2 
 3 import java.util.concurrent.ExecutorService;
 4 import java.util.concurrent.Executors;
 5 
 6 public class ThreadD implements Runnable {
 7 
 8     public void run() {
 9         System.out.println("start ThreadD!");
10     }
11 
12     public static void main(String[] args) {
13         ExecutorService executorService = Executors.newSingleThreadExecutor();
14         executorService.execute(new ThreadD());
15     }
16 }

原文链接:https://www.cnblogs.com/tanyang/p/11176103.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:spring学习笔记一 入门及配置

下一篇:43道多线程面试题,附带答案(三)