動態計算分配及獲取執行緒數

2021-07-10 13:44:15 字數 835 閱讀 7763

有時我們處理乙個耗時的運算,就必須開啟執行緒處理,如果運算數量非常龐大,每個運算都開啟乙個執行緒,這裡做了太多無用功,會造成cpu負荷

記憶體暴漲,尤其是移動端,記憶體和cpu資源是極其寶貴的,合理的做法是,智慧型給運算分組,每組運算交給乙個執行緒處理。那這樣一來就需要乙個小演算法。下面給出了演算法邏輯。calculatethreadnum獲得需要分配的執行緒數,isopenthreadnum控制是否需要建立執行緒。

/**

* 計算執行緒個數,根據運算總數和執行緒單位處理數,計算執行緒個數

* @param totalsize 運算總數

* @param disthreadnum 每層分配執行緒數

* @return

*/ private int calculatethreadnum(int totalsize, int disthreadnum) else

} else

}/**

* 動態分配執行緒。根據運算總數和執行緒單位處理數動態分配執行緒個數

* @param totalsize 運算總數

* @param disthreadnum 單位執行緒處理運算個數

* @param 運算索引數

* @return

*/private static boolean isopenthreadnum(int totalsize, int disthreadnum, int index)

} else

} else if(index == totalsize)

return false;}}

return false;

}

indy 獲取對方 及執行緒

在indy10的idtcpserver元件的onexecute事件中,如果要獲取對方的ip 埠和本機對應的執行緒id,與indy9 有所不同。本例是利用indy10元件時,獲得上述引數的 uses idschedulerofthread procedure tform1.idtcpserver1ex...

網路位址的分配及獲取

在04協議棧裡有這樣乙個公式,a a parent cskip d rm n,cskip d 是不同深度的父裝置分配位址時的偏移量,rm是可以攜帶的最大路由數,n是第n個裝置。其中如果cskip d 0x5a6,rm 4,則協調器的第乙個rfd的位址為a 0 0x5a6 4 1 0x1699.在06...

python多執行緒之動態確定執行緒數

1 2 建立執行緒,也可以動態確定執行緒數 3 4 encoding utf 856 7import threading 8import time 9import random 1011 12def print time thread name,step 13 python的time.ctime 函...