On Feb 17, 2008 8:01 PM, Geoff Steckel <[EMAIL PROTECTED]> wrote: > Gregg Reynolds wrote: > > On 2/17/08, Marc Balmer <[EMAIL PROTECTED]> wrote: > >> Geoff Steckel wrote: > >> > >>> Threads or any other form of uncontrolled resource sharing > >>> are very bad ideas. > >> that might be true for those that don't understand threads. > >> for other it can be highly benefitial. > > > > Indeed, "threads are bad" strikes me as just plain silly. In fact, > > it's not even a technical issue; anybody who thinks it is is in for a > > rude surprise (like, zero market share) in a few short years. It's a > > "threads" is a particular programming model of multiple execution > contexts in a (mostly) shared memory and (mostly) shared resource > environment which is not cost-effective for producing reliable software.
Assuming that a software program is not system-critical or requires high security, and it benefits greatly from a shared memory/resource model, I fail to see why threading can not be cost-effective. > It is much easier to produce a reliable multithreaded application using > multiple processes and an appropriate communication method for sharing > the specific data needed. "Easier" is hard to quantify when writing software. I've written several programs with MPI that could have just as easily been written with threads or fork()ed processes. IMHO, some tasks lend themselves more easily towards threading than others, and others to multiple processes. > Any counterargument must speak to advantages the "threads" model has > over multiple processes or other protected multiple execution models > versus the increased cost of construction and maintenance of a reliable > program using the "threads" model. > > Any argument to experience must be from similar actual implementations > using "threads" and another model, such as multiple processes with > interprocess communications. Threads are hard to secure, this is commonly accepted as true. It does not logically follow that OpenBSD should entirely disallow the use of threads (or any other valid programming model) in software. That would significantly hinder adoption of OpenBSD for general workstation use. The availability of threads to userland programs shouldn't hurt any program that doesn't use them. OpenBSD developers are unlikely to introduce threaded features to userland tools without a clean bill of health from code audits, even when the changes are trivial. Using 'goto' and 'snprintf' in C software are also considered potentially harmful and easy to misuse. But OpenBSD does not limit their use; they CAN be used correctly and without error. The same applies to threads: only when appropriate. Since you (presumably) use OpenBSD, I hope you trust developers to decide when threading is and is not appropriate. Good luck, --david