运维开发网

在linux中的工作线程

运维开发网 https://www.qedev.com 2020-07-09 08:01 出处:网络
为什么有时需要创建新的工作线程来执行可延迟的工作函数,而不是仅仅在默认的“events / n”内核工作线程上调度它?
为什么有时需要创建新的工作线程来执行可延迟的工作函数,而不是仅仅在默认的“events / n”内核工作线程上调度它? 事件工作者线程需要复用许多任务,因此不允许阻塞它(在单个任务中调用schedule()).但是,有许多任务需要阻塞(等待磁盘,网络,某些设备等),内核中有很多内部阻塞的功能(如信号量甚至内存分配).此类函数只能在系统调用或专用内核线程中代表userland运行.

虽然理论上可以将这样的代码重写为一长串事件,但它会使它复杂且不可维护,并且内核线程的开销非常小.

0

精彩评论

暂无评论...
验证码 换一张
取 消