>>> I don't think you need the threads. >>> 1. If your tasks are I/O bound, coroutines are a safer way to do things, >>> and probably even have better performance; >> >> Thread vs Coroutine context switching is an interesting topic. >> Do you have any data for comparison?
> My 2cts: > OS native (= non-green) threads are an OS scheduler driven, preemptive > multitasking approach, necessarily with context switching overhead that > is higher than a cooperative multitasking approach like asyncio event loop. > Note: that is Twisted, not asyncio, but the latter should behave the > same qualitatively. > /Tobias Linux OS threads come with 8MB stack per thread + switching costs as you mentioned. A) Python threads are not real threads. It multiplexes "Python Threads" on a single OS thread. (Guido, can you correct me if I'm wrong, and can you provide some info on multiplexing/context switching of "Python Threads"?) B) Where as asyncio multiplexes coroutines on a "Python Thread"? The question is "Which one is more effective?". The answer is ofcourse dependent on use case. However, as a heavy user of coroutines, I begin to think to go back to "Python Threads".. Anyway that's personal choice. Now lets clarify advantages and disadvantages between A and B.. Regards, Imran