多執行緒 FutrueTask

2021-09-22 05:40:02 字數 1661 閱讀 3170

futuretask同時實現了runnable介面和future介面,因此可以直接提交給執行緒池執行,同時也可以返回執行緒的執行的結果

private

static

final

int new =0;

private

static

final

int completing =1;

private

static

final

int normal =2;

private

static

final

int exceptional =3;

private

static

final

int cancelled =4;

private

static

final

int interrupting =5;

private

static

final

int interrupted =

6;

狀態的流轉

futruetask是基於aqs實現的

a執行緒呼叫了b執行緒的futuretask.run()方法,則a執行緒會等待b執行緒執行完之後才會繼續執行

1.多個執行緒同時執行同一任務,每個任務只能執行一次

2.其它執行緒要等待這個任務執行完了才能繼續執行

public

class

futuretasktest

; futuretask

futuretask =

newfuturetask

<

>

(callable)

;//使用concurrenthashmap保證併發安全

future = taskcache.

putifabsent

(taskname,futuretask)

;//保證同名的任務只會被執行一次

if(future == null)

}try

catch

(cancellationexception e)}}

public

static

void

main

(string[

] args)

throws executionexception, interruptedexception

}

執行結果如下

主線程呼叫了futruetask的run()方法,主線程等待futruetask方法執行完了之後才會繼續往下執行

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...

多執行緒(一) tomcat 多執行緒

web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...

多執行緒 理解多執行緒(一)

程序 程序是cpu分配資源的基本單位 執行緒 執行緒是cpu排程的基本單位 資源分配給程序,所有執行緒共享該程序的資源 當執行緒數大於cpu的數量,會出現時間片的輪詢。cpu時間片是直接分配給執行緒的,執行緒拿到cpu時間片就能執行了 cpu時間片不是先分給程序然後再由程序分給程序下的執行緒的。所有...