java初入多執行緒12

2021-08-09 20:19:40 字數 2167 閱讀 6243

自定義執行緒建立:threadfactory

我們原先用的執行緒池threadpoolexecutor 裡面的執行緒都是從threadfactory 建立的。

2.作用:我們可以根據自定義執行緒池,幫助我們跟蹤執行緒池建立了多少個執行緒,也可以自定義執行緒的名稱,組以及優先順序等資訊。甚至可以將所有執行緒設定為守護執行緒。**演示如下:

public

class

threadfactorytask catch (exception e) }}

public

static

void

main(string args) throws exception

});for(int i = 0 ; i < 5 ; i++)

thread.sleep(2000);}}

擴充套件執行緒池

使用threadpoolexecutor 擴充套件,使用beforeexecute(),afterexecute(), terminated()三個介面對執行緒池進行控制。**演示如下:

shutdown 關閉執行緒池,是乙個比較安全的關閉執行緒池,有任務執行執行,不會暴力的終止任務。而是等待任務完成在關閉,再次之後不再接收新的任務過來。

優化執行緒池的執行緒數量

fork/join 框架

思想是「分而治之」,採用分化的方式來提高程式執行的效率。執行效果邏輯如圖所示

互助執行緒的出現是因為執行緒池的優化,在實際的執行過程中,如果有兩個執行緒a,b .a把任務執行完成後如果b任務還沒有執行完成,a就會去幫助b完成任務,當執行緒打算去幫助另外的執行緒的時候,兩個執行緒取任務的時候也是從相反的方向取任務,這也減少 了執行緒之間的任務爭奪情況的出現。

2. forkjoinpool的介面介紹

public  forkjointask submit(forkjointask task);
public

class

counttask

extends

recursivetask

@override

protected long compute()

}else

counttask subtask = new counttask(pos, lastone);

pos += step+1 ;

subtasks.add(subtask);

subtask.fork();//提交子任務用來

}for (counttask counttask : subtasks)

}return

sum ;

}public

static

void main(string args) catch (exception e) }}

java多執行緒初入3

程序的概念 程序 官方的語言是計算機中的程式,關於某資料集合上的一次執行活動。使系統進行資源分配和排程的基本單位單位,是作業系統的基本單位,是作業系統結構的基礎。在現在的執行緒設計的計算機結構中,程序是執行緒的容器,程式是指令資料及組織形式的描述,程序是程式的實體,但是總的來說 程序是執行緒的容器。...

java初入多執行緒7

同步控制 synchronized 擴充套件 重入鎖 public static reentrantlock looklock new reentrantlock public static int i 0 public void run catch exception e finally publ...

java初入多執行緒10

執行緒阻塞工具類 locksupport public class locksupportdemo override public void run public static void main string args throws exception public class locksuppo...