User loginNavigation |
Threads Cannot be Implemented as a Library
Hans-J. Boehm. Threads Cannot Be Implemented As a Library.
Proceedings of the ACM SIGPLAN 2005 Conference on Programming
Language Design and Implementation, June 2005, pp. 261-268.
Official version.
Technical report version.
In many environments, multi-threaded code is written in a language that was originally designed without thread support (e.g. C), to which a library of threading primitives was subsequently added. There appears to be a general understanding that this is not the right approach. We provide specific arguments that a pure library approach, in which the compiler is designed independently of threading issues, cannot guarantee correctness of the resulting code. We first review why the approach almost works, and then examine some of the surprising behavior it may entail. We further illustrate that there are very simple cases in which a pure library-based approach seems incapable of expressing an efficient parallel algorithm. Our discussion takes place in the context of C with Pthreads, since it is commonly used, reasonably well specified, and does not attempt to ensure type-safety, which would entail even stronger constraints. The issues we raise are not specific to that context. The paper includes several interesting examples, and reminds us yet again of the importance of formally well defined semantics. |
Browse archives
Active forum topics
New forum topics
|
Recent comments
1 hour 17 min ago
11 hours 30 min ago
14 hours 41 min ago
15 hours 57 min ago
17 hours 8 min ago
18 hours 21 min ago
19 hours 3 min ago
19 hours 9 min ago
23 hours 29 min ago
1 day 11 min ago