1 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
像考慮為企業(yè)雇用員工一樣考慮線程。您什么時(shí)候?yàn)槠髽I(yè)雇用工人?只有當(dāng)你有很多工作要做時(shí),因?yàn)檎衅赋杀竞芨?/strong>。
理想情況下,僅當(dāng)滿足以下條件時(shí)才應(yīng)創(chuàng)建新線程:
要做的工作是 CPU 密集型的
這項(xiàng)工作很長(zhǎng)——肯定超過(guò) 30 毫秒,更像是幾秒或幾分鐘的工作。
有一個(gè)空閑 CPU 可以 100% 專用于為該線程提供服務(wù)。
就您而言,您似乎正在考慮雇用一名工作人員來(lái)運(yùn)行數(shù)據(jù)庫(kù)查詢。好吧,你會(huì)為你的企業(yè)雇傭一名工人,他唯一的工作就是發(fā)一封信,然后讓他們?cè)诘却貜?fù)時(shí)睡覺嗎?當(dāng)然不是。因此,也不要雇用線程來(lái)執(zhí)行此操作。如果您要執(zhí)行的高延遲工作不受 CPU 限制,請(qǐng)?jiān)趩蝹€(gè)線程上創(chuàng)建異步工作流程。
異步工作流程不會(huì)雇用新的工作人員。相反,這就像您發(fā)送一封信,在等待回復(fù)的同時(shí),您會(huì)找到其他工作要做,從而有效地利用您的時(shí)間。當(dāng)回復(fù)到達(dá)時(shí),您可以從上次中斷的地方繼續(xù)執(zhí)行“信件工作流程”。
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)