Threads Considered Harmful

By Lucian Radu Teodorescu

Multithreaded programming is everywhere nowadays. However, the way we construct multithreaded programs is still largely primitive; similar to using gotos in the era of structured programming. The current methods have usability, composability, correctness and also performance problems.

This talk aims at providing a new toolset for the multithreaded programmer. Instead of writing our multithreaded programs in terms of explicit threads and synchronization primitives, one should be expressing them in terms of tasks and dependencies between tasks. The talk describes a method of modeling the programs and dependencies. It also shows how one can eliminate locks (or any synchronization primitives) from programs. Using this method, one can raise the abstraction of multithreaded programs, bring back composability, improve determinism, and also improve performance.

The talk will be a mix of theory (presented in an intuitive manner), comparisons with other models, practical examples, and, of course, performance considerations.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.