16 ms·
More threads on a single core equal more context switches, which reduces the effective amount of instructions you can process.
by janhaa 3y ago
More threads on a single core equal more context switches, which reduces the effective amount of instructions you can process.
- kristiandupont 3y agoWell sure, but why would that make it "improper multithreading"? Is polymorphism based on vtables not "proper OOP"? We rely on many abstractions that aren't free in terms of CPU cycles because it makes development easier or less error prone. And setting up, say, one thread per HTTP request will likely be negligible because blocking I/O is where time is spent anyways..
- threeseed 3y agoIt's not improper it's just non-optimal. And we have had non-blocking I/O for quite some time now.
- mgaunard 3y agoAny networking program doing blocking I/O is doing it wrong. Your I/O should only be done synchronously if it's non-blocking. Now for disk I/O, it's a more muddy thing, it's actually quite different from networking since it's more transparently managed by the operating system.