自定義執行緒建立: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...