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

資訊專欄INFORMATION COLUMN

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

BlackHole1 / 2369人閱讀

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

1、通過(guò)繼承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、通過(guò)實(shí)現(xiàn)Runnable接口實(shí)現(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)建可拋異常且有返回值的線程任務(wù)

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

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的繼承類圖

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

2、Callable接口

Callable接口允許我們?cè)诰€程執(zhí)行的時(shí)候有返回值,以及拋出異常!

4、線程的停止

①Thread類中的3個(gè)停止方法:

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

②三者區(qū)別:

public void interrupt()

將線程標(biāo)記為中斷

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

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

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

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

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

③中斷示例代碼

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();
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/76681.html

相關(guān)文章

  • Java多線程學(xué)習(xí)()Java多線程入門

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

    Donne 評(píng)論0 收藏0
  • 線程學(xué)習(xí)筆記(2):多線程基礎(chǔ)

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

    HelKyle 評(píng)論0 收藏0
  • Akka系列(六):Actor解決了什么問(wèn)題?

    摘要:原文鏈接解決了什么問(wèn)題使用模型來(lái)克服傳統(tǒng)面向?qū)ο缶幊棠P偷木窒扌裕?yīng)對(duì)高并發(fā)分布式系統(tǒng)所帶來(lái)的挑戰(zhàn)。在某些情況,這個(gè)問(wèn)題可能會(huì)變得更糟糕,工作線程發(fā)生了錯(cuò)誤但是其自身卻無(wú)法恢復(fù)。 這段時(shí)間由于忙畢業(yè)前前后后的事情,拖更了很久,表示非常抱歉,回歸后的第一篇文章主要是看到了Akka最新文檔中寫(xiě)的What problems does the actor model solve?,閱讀完后覺(jué)...

    Carson 評(píng)論0 收藏0
  • 0011 - YARN核心設(shè)計(jì)解析

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

    KoreyLee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<