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

服務(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ì)本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久99r66热这里只有精品 | 韩国www| 久久草香蕉频线观 | 精品国产国偷自产在线观看 | www.毛片网站| 青青青青在线视频 | 欧美日韩中文国产一区二区三区 | 视频在线观看入口一二三2021 | 欧美视频一区二区三区四区 | 日韩精品1 | 国产成人精品日本亚洲网站 | 男同桌脱我奶罩吸我奶作文 | 动漫白丝袜美女羞羞 | 国产精品青青在线观看香蕉 | 精品日韩欧美一区二区三区在线播放 | 国产91精品久久久久久 | 视频二区 素人 欧美 日韩 | 国产精品亚洲综合久久 | 日韩一区二区在线视频 | 亚洲一级视频在线观看 | 美女被扣逼 | 亚洲视频在线观看不卡 | 91制片厂制作果冻传媒破解 | 欧美娇小性xxxx | 俄罗斯13一14处出血视频在线 | 美女认你摸 | 日韩毛片免费线上观看 | 欧美日韩国产亚洲一区二区三区 | 能播放的欧美同性videos | 免费成人在线观看视频 | 人禽l交免费视频观看+视频 | 免费一级欧美片在线观免看 | 激情综合色啪啪小说 | 我的青梅竹马是消防员2季未增删免费 | 久久成人精品免费播放 | 久久久久国产一级毛片高清片 | 美女被爆操 | 大学生情侣在线 | 日本一道本中文字幕 | 国产91对白在线观看 | 欧美综合色网 |