国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - JAVA教程 - java 實現多線程的方法總結

java 實現多線程的方法總結

2020-06-20 12:31java教程網 JAVA教程

這篇文章主要介紹了java 實現多線程的方法總結的相關資料,需要的朋友可以參考下

java 實現多線程的三種方法

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

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

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

開啟線程:

對象.start()    //啟動線程,run函數運行

(2)實現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)實現Callable接口,重寫call函數

Callable是類似于Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務。

Callable和Runnable有幾點不同:

  1. Callable規定的方法是call(),而Runnable規定的方法是run().
  2. Callable的任務執行后可返回值,而Runnable的任務是不能返回值的
  3. call()方法可拋出異常,而run()方法是不能拋出異常的。
  4. 運行Callable任務可拿到一個Future對象,Future表示異步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,并檢索計算的結果.通過Future對象可了解任務執行情況,可取消任務的執行,還可獲取任務執行的結果

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 相當于是用來存放Executor執行的結果的一種容器
 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();
 }
}

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色成人亚洲www78ixcom | 国产精品美女久久久久久久久久久 | 亚洲精品久久久蜜桃 | 久久精彩 | jizz中国zz女人18高潮 | 精品不卡 | 免费在线一区二区 | 成人午夜视频在线播放 | 精品在线一区 | 日韩精品在线一区 | 国产精品福利视频 | 欧美成人激情 | 日韩精品免费观看 | 国产乱码精品一区二区三区av | 九九精品在线 | 日韩在线免费观看视频 | 99精品视频在线观看 | 国产精品不卡一区二区三区 | 国产免费黄色 | 日韩在线观看成人 | 一区二区三区国产在线观看 | a天堂中文在线观看 | 久草在线视频免费播放 | 午夜精品久久久久久久星辰影院 | 国产一区亚洲二区三区 | 国产欧美日韩在线观看 | 91 在线观看 | 成人深夜在线观看 | 精品国产欧美一区二区 | 日韩欧美一区二区在线观看视频 | 亚洲精品一区二区三区在线观看 | 日韩免费在线观看 | 日韩在线不卡 | 欧美日韩不卡合集视频 | a毛片国产 | 亚洲欧洲日韩 | 亚洲乱码日产精品一二三 | 综合久久综合 | 欧美日韩在线视频观看 | 国产亚洲精品一区二区 | 97久久久 |