Libev和libuv哪個(gè)好用 誰(shuí)用過(guò)libuv的?echo的例子是單線程的,怎樣多線程?
誰(shuí)用過(guò)libuv的?echo的例子是單線程的,怎樣多線程?反映了這種無(wú)需計(jì)算的處理工作,一個(gè)CPU內(nèi)核完全可以處理網(wǎng)卡。所以單線程是可以的。對(duì)于多線程,不同的程序框架有不同的模型。Libuv使用線程池
誰(shuí)用過(guò)libuv的?echo的例子是單線程的,怎樣多線程?
反映了這種無(wú)需計(jì)算的處理工作,一個(gè)CPU內(nèi)核完全可以處理網(wǎng)卡。
所以單線程是可以的。對(duì)于多線程,不同的程序框架有不同的模型。Libuv使用線程池。使用UVqueueWork將工作提交到線程池執(zhí)行。處理完成后,將觸發(fā)主線程的回調(diào)函數(shù)。
線程池的五個(gè)參數(shù)?
Corepollsize:核心線程數(shù)。
Maximumpoolsize:最大線程數(shù)。
Keepalivetime:空閑線程的保留時(shí)間。
Timeunit:空閑線程保留時(shí)間的單位。
阻塞隊(duì)列<runnable>:阻塞隊(duì)列以存儲(chǔ)等待執(zhí)行的任務(wù)。
Threadfactory:用于創(chuàng)建線程的線程工廠。
Rejectedexecutionhandler:隊(duì)列已滿且任務(wù)量大于最大線程數(shù)時(shí)的異常處理策略。