一、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...