国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

線程系列一、線程的創(chuàng)建與停止

BlackHole1 / 2375人閱讀

摘要:接口接口允許我們在線程執(zhí)行的時候有返回值,以及拋出異常線程的停止類中的個停止方法三者區(qū)別將線程標記為中斷返回線程當前的中斷狀態(tài),不清除線程的中斷標記返回線程當前的中斷狀態(tài),并清除線程的中斷標記與本質(zhì)都是調(diào)用了的。

1、通過繼承Thread類

public static class MThread extends Thread{

    @Override
    public void run() {
        System.out.println(this.getName() + " start");
    }
}

public static void main(String[] args){
    new MThread().start();
}

2、通過實現(xiàn)Runnable接口實現(xiàn)

public static class MRunnable implements Runnable {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() +" start");
    }
}

public static void main(String[] args){
    new Thread(new MRunnable()).start();
}

3、創(chuàng)建可拋異常且有返回值的線程任務

public static class MCallAble implements Callable {
    @Override
    public String call() throws Exception {
        return Thread.currentThread().getName() + " 測試";
    }
}

public static void main(String[] args) throws ExecutionException, InterruptedException {
    FutureTask task = new FutureTask<>(new MCallAble());
    Thread thread = new Thread(task);
    thread.start();
    System.out.println(task.get());
}

解釋:

1、FutureTask的繼承類圖

因為FutureTask最終實現(xiàn)的是Runnable接口,因此FutureTask可以直接放在Thread中執(zhí)行。

2、Callable接口

Callable接口允許我們在線程執(zhí)行的時候有返回值,以及拋出異常!

4、線程的停止

①Thread類中的3個停止方法:

public void interrupt()
public static boolean interrupted()
public boolean isInterrupted()

②三者區(qū)別:

public void interrupt()

將線程標記為中斷

public boolean isInterrupted() {
    return isInterrupted(false);
}

返回線程當前的中斷狀態(tài),不清除線程的中斷標記

public static boolean interrupted() {
    return currentThread().isInterrupted(true);
}

返回線程當前的中斷狀態(tài),并清除線程的中斷標記

interrupted() 與 isInterrupted() 本質(zhì)都是調(diào)用了 native的 isInterrupted()。interrupted()清除了標記, isInterrupted()不清楚標記。

③中斷示例代碼

static class Mclass implements Runnable {
    @Override
    public void run() {
        while (!Thread.interrupted()) {
            System.out.println(Thread.currentThread().getName() + " start ");
        }
    }
}

public static void main(String[] args) {
    Thread thread1 = new Thread(new Mclass());
    Thread thread2 = new Thread(new Mclass());
    thread1.start();
    thread2.start();
    thread1.interrupt();
}

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76681.html

相關文章

  • Java多線程學習()Java多線程入門

    摘要:最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的多線程的文章,除了書籍沒有什么學習多線程的一系列文章。將此線程標記為線程或用戶線程。 最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學習多線程的一系列文章。但是僅僅憑借一兩篇文章很難對多線程有系統(tǒng)的學習,而且面試的時候多線程這方面的知識往往也是考察的重點,所以考慮之下決定寫一系列關于Java多線程的文章...

    Donne 評論0 收藏0
  • 線程學習筆記(2):多線程基礎

    摘要:和方法用來設置線程是否成為守護線程和判斷線程是否是守護線程。守護線程依賴于創(chuàng)建它的線程,隨它的消亡而消亡。使用提供的方法,提醒線程終止,但是否真正終止由線程自己決定。參考實戰(zhàn)高并發(fā)程序設計多線程干貨系列一多線程基礎 一、如何創(chuàng)建多線程 1、繼承Thread類 public class MyThread extends Thread { @Override public ...

    HelKyle 評論0 收藏0
  • Akka系列(六):Actor解決了什么問題?

    摘要:原文鏈接解決了什么問題使用模型來克服傳統(tǒng)面向對象編程模型的局限性,并應對高并發(fā)分布式系統(tǒng)所帶來的挑戰(zhàn)。在某些情況,這個問題可能會變得更糟糕,工作線程發(fā)生了錯誤但是其自身卻無法恢復。 這段時間由于忙畢業(yè)前前后后的事情,拖更了很久,表示非常抱歉,回歸后的第一篇文章主要是看到了Akka最新文檔中寫的What problems does the actor model solve?,閱讀完后覺...

    Carson 評論0 收藏0
  • 0011 - YARN核心設計解析

    摘要:包括等,它們共同維護了一個事件與事件處理器的映射表,用來處理各個事件。例如內(nèi)部包含一個中央異步調(diào)度器,并注冊了等一系列事件事件處理器,由中央異步調(diào)度器統(tǒng)一管理和調(diào)度。當狀態(tài)機轉換到最終狀態(tài)時,則退出。 大數(shù)據(jù)夢工廠( 0011 - YARN核心設計解析)1 - YARN RPC架構設計YARN RPC Serv...

    KoreyLee 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<