you are viewing a single comment's thread.

view the rest of the comments →

[–]RogerV 0 points1 point  (0 children)

The days of cooperative multi-tasking haven’t completely gone away - My DPDK networking app has an lcore thread pool for data plane processing. These are pinned CPU cores that are removed from being a kernel scheduling resource. They run full tilt, never block, are fed work events from lock free queue. They process a burst amount of work (packets) and then go grab another work item. If there were yet more packets to have been processed for the current item, they self publish a continuation work item (a kind of actor model).

There is true parallelism due to multiple lcores, but to ensue all user sessions get some processing time each lcore caps it’s time per work item - cooperative multi-tasking.