On Thu, Oct 27, 2016 at 10:33 PM, jmp <jeanmic...@sequans.com> wrote: > On 10/27/2016 12:22 PM, pozz wrote: >> >> Anyway I don't like this approach, because the main (and single) thread >> should check in_waiting every X milliseconds. >> If X is too high, I could wait for the answer even if it is already >> ready in the input buffer. >> If X is too low, the application consumes a lot of clocks to check >> in_waiting. >> >> I would prefer to have a callback automatically called when the read >> operation is complete. And I think the only method is using another >> (blocking) thread. The blocking function read returns *immediately* when >> all the bytes are received. And I think during blocking time, the >> thread isn't consuming CPU clocks. > > > Threads do consume CPU clocks. > An operation within a thread will not consume less CPU clocks, however, the > scheduler will interrupt the thread and give other threads/operations a > chance to process as well. > Threads implement paralellism, not performances.
Blocked threads don't consume CPU time. Why would they? Remember, folks, *EVERY* program has at least one thread. Threads aren't some weird and magical thing that you have to be scared of. They're things you use *all the time*, and they are exactly what you're used to. ChrisA -- https://mail.python.org/mailman/listinfo/python-list