The Problem with Threads
Citations Over TimeTop 1% of 2006 papers
Abstract
For concurrent programming to become mainstream, we must discard threads as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs. In general-purpose software engineering practice, we have reached a point where one approach to concurrent programming dominates all others namely, threads, sequential processes that share memory. They represent a key concurrency model supported by modern computers, programming languages, and operating systems. In scientific computing, where performance requirements have long demanded concurrent programming, data-parallel language extensions and message-passing libraries such as PVM, MPI, and OpenMP dominate over threads for concurrent programming. Computer architectures intended for scientific computing often differ significantly from so-called general-purpose architectures.
Related Papers
- Object-oriented concurrent programming(1987)
- → Programming abstractions for integrating autonomous and reactive behaviors(2012)15 cited
- → Automated programming, symbolic computation, machine learning: my personal view(2023)4 cited
- A fault-tolerant mobile-state protocol and its language interface(2010)
- → TOWARDS A GREEN PROGRAMMING PARADIGM FOR MOBILE SOFTWARE DEVELOPMENT(2013)