一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java 實(shí)現(xiàn)多線程的方法總結(jié)

java 實(shí)現(xiàn)多線程的方法總結(jié)

2020-06-20 12:31java教程網(wǎng) JAVA教程

這篇文章主要介紹了java 實(shí)現(xiàn)多線程的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下

java 實(shí)現(xiàn)多線程的三種方法

在java中,有三種方法可以實(shí)現(xiàn)多線程。第一種方法:繼承Thread類,重寫run函數(shù)。第二種方法:實(shí)現(xiàn)Runnable接口,重寫run函數(shù)。第三種方法:實(shí)現(xiàn)Callable接口,重寫call函數(shù)。本文章將通過實(shí)例講解這三種方法如何實(shí)現(xiàn)多線程。需要的可以參考一下。

 (1)繼承Thread類,重寫run函數(shù)。

?
1
2
3
4
class xx extends Thread{
     public void run(){
      Thread.sleep(1000//線程休眠1000毫秒,sleep使線程進(jìn)入Block狀態(tài),并釋放資源
    }}

開啟線程:

對(duì)象.start()    //啟動(dòng)線程,run函數(shù)運(yùn)行

(2)實(shí)現(xiàn)Runnable接口,代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class MyThread implements Runnable {
  
  private String name;
  
  public MyThread(String name) {
    super();
    this.name = name;
  }
  
  @Override
  public void run() {
    for(int i = 0 ; i < 200; i++) {
      System.out.println("Thread"+name+"--->"+i);
    
  }
}
 
public class ThreadDemo {
 
  public static void main(String[] args) {
    MyThread a = new MyThread("a");
    MyThread b = new MyThread("b");
    MyThread c = new MyThread("c");
    new Thread(a).start();
    new Thread(b).start();
    new Thread(c).start();
  }
}

(3)實(shí)現(xiàn)Callable接口,重寫call函數(shù)

Callable是類似于Runnable的接口,實(shí)現(xiàn)Callable接口的類和實(shí)現(xiàn)Runnable的類都是可被其它線程執(zhí)行的任務(wù)。

Callable和Runnable有幾點(diǎn)不同:

  1. Callable規(guī)定的方法是call(),而Runnable規(guī)定的方法是run().
  2. Callable的任務(wù)執(zhí)行后可返回值,而Runnable的任務(wù)是不能返回值的
  3. call()方法可拋出異常,而run()方法是不能拋出異常的。
  4. 運(yùn)行Callable任務(wù)可拿到一個(gè)Future對(duì)象,F(xiàn)uture表示異步計(jì)算的結(jié)果。它提供了檢查計(jì)算是否完成的方法,以等待計(jì)算的完成,并檢索計(jì)算的結(jié)果.通過Future對(duì)象可了解任務(wù)執(zhí)行情況,可取消任務(wù)的執(zhí)行,還可獲取任務(wù)執(zhí)行的結(jié)果

Java  Callable 代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class TaskWithResult implements Callable<String> {
 private int id;
 
 public TaskWithResult(int id) {
 this.id = id;
 }
 
 @Override
 public String call() throws Exception {
 return "result of TaskWithResult " + id;
 }
}
 
public class CallableTest {
 public static void main(String[] args) throws InterruptedException,
  ExecutionException {
 ExecutorService exec = Executors.newCachedThreadPool();
 ArrayList<Future<String>> results = new ArrayList<Future<String>>(); //Future 相當(dāng)于是用來存放Executor執(zhí)行的結(jié)果的一種容器
 for (int i = 0; i < 10; i++) {
  results.add(exec.submit(new TaskWithResult(i)));
 }
 for (Future<String> fs : results) {
  if (fs.isDone()) {
  System.out.println(fs.get());
  } else {
  System.out.println("Future result is not yet complete");
  }
 }
 exec.shutdown();
 }
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本不卡免费新一二三区 | 成人久久网站 | 亚洲国产精品久久卡一 | 青草园网站在线观看 | 97精品国产高清在线看入口 | 无人区大片免费播放器 | 好硬好大好浪夹得好紧h | 护士伦理片 | 大学生情侣在线 | 香蕉久久一区二区三区啪啪 | h肉动漫在线视频无修无遮挡 | 私人影院免费 | 国产福利兔女郎在线观看 | 欧美一级裸片 | 欧美一区二区三区四区在线观看 | 日本视频高清 | 亚洲gogo人体大胆西西安徽 | 香蕉精品视频 | 苍井空色欲迷墙 | 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 丝瓜视频看污片 | 卫生间被教官做好爽HH视频 | 毛片一区二区三区提莫影院 | 四虎一影院区永久精品 | 很黄的孕妇a级黄毛片 | 美女黄金大片视频免费看 | www.青草视频 | 色综合图区 | 国产精品合集久久久久青苹果 | 91亚洲一区二区在线观看不卡 | 操国产美女 | 欧美日韩不卡视频 | 国产91精品区| 日本人成年视频在线观看 | 91精品综合国产在线观看 | narutotsunade全彩雏田 | 青草网址 | 无人影院在线播放视频 | 色综合色狠狠天天综合色 | 天天做天天玩天天爽天天 | 欧美色在线 |