ComputingComputer ScienceOperating SystemsProgramming LanguagesReal-time SystemsConcurrency AnalysisConcurrent ProgrammingReal-time Systems ProgrammingSynchronization PrimitivesThread ManagementThread ProgrammingAddress Space MappingGarbage Collection OverheadReal-time Concurrency ControlReal-time SemanticsReal-time ThreadingThread ParallelismThreadingVirtual Address Space
A thread is a basic unit of program execution that can share a single address space with other threads - that is, they can read and write the same variables and data structures. Originally, only assembly programmers used threads. A few older programming languages such as PL/I supported thread concurrency, but newer languages such as C and C++ use libraries instead. Only recently have programming languages again begun to build in direct support for threads. Java and Ada are examples of industry-strength languages for multithreading. The Java thread model has its roots in traditional concurrent programming. As the "real-time specification for Java" sidebar describes, RTSJ attempts to remove some of the limitations relative to real-time applications - primarily by circumventing garbage collection. But RTSJ does not make the language safer. It retains standard Java's threading pitfalls and is a risky candidate for critical concurrent applications.
4
C. A. R. Hoare · Communications of the ACM · 1974 · 1.5K citations · Full text
The real-time specification for Java
Greg Bollella, James Gosling · Computer · 2000 · 988 citations
Bo I. Sandén · IEEE Software · 1997 · 11 citations