xgb多執行緒成功執行記錄

2021-09-23 07:56:00 字數 551 閱讀 8465

一、xgboost版本:

xgboost.__version__:顯示版本為0.82

二、檢視多執行緒引數:

從官方文件中可以看出,nthread已經deprecated,需要使用n_jobs;

三、實驗:

n_jobs取值:-1(不考慮nthread)

通過檢視該程序ps aux|grep python獲得程序號id

然後通過top -hp 程序號id,可以檢視thread的數量;

實驗結果表明:前面幾十秒左右時間 thread  是1,然後就變成了32

當n_jobs:取值32時,

通過上述方法,可以得到其執行緒數也為32;(馬上檢視其結果仍然為1)

nthead取值:none,4,32(不考慮n_jobs)

通過上述方法檢視,nthead是多少,其執行緒數量 就是多少;為none時數量為1

如果不對n_jobs與nthread傳值,其預設就是1個執行緒;

多執行緒交替執行

場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...

多執行緒交替執行

場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...

多執行緒執行demo

業務場景 需要大批量處理資料,執行時間容易超時。主線程等待子執行緒執行完成再執行 static int count 0 public static void main string args list list new arraylist list.add 2 list.add 1 list.add...