"John van V." <john_van_v / yahoo.com> wrote: > >I really appreciate reading this "thread" > > > It doesn't depends on whether threading is implemented in kernel, > > which relatively heavy weight, or user level library realizing very > > light weight and optimized for ultra fine grain threads like stack > > threads. > >There was a recent copy of Java on Linux from the Java developers journal. >I only mention this because Ruby is developed on Linux and is not (yet??) >ported to Sun. Linux threads are heavy weight to the extreme, they are >just >disguised processes. The Sun model is LWP internal to each process (of >course). Solaris, btw, will be open sourced pretty soon (or already is) First of all Ruby should run just fine on Sun. If you have trouble compiling it, please report back any errors. Secondly don't believe everything you read. Linux may use kernel threads, but it switches threads faster than Solaris does. And nothing stops a user-level library from doing an LWP implementation. (But note that Solaris allows you to have more threads, and has much better debugging facilities for threads. I suspect that Linux 2.4 massively raised the number of threads you can have, but does little or nothing for the debuggability issue.) Thirdly Sun not going open source, even though they are trying to make it sound like they are. See http://www.zdnet.com/sp/stories/news/0,4538,2428184,00.html for some details. >Many dont like multithreading, and I have yet to write in it, but I would >very >much like to. The primary reason would be to share complex structures >between >server connections w/o the bother of serializing and locking shared memory. If you use multi-threading and think it does not require locking, you will be burned very, very badly. >From the administrative point of view, multiprocessing is very controllable >whereas multithreading presents a black box. There is evidence that multi-threading causes limits to scalability as well. The easiest way to scale is a cluster, and clustering (NUMA, etc) is much easier to get working well when things explicitly share very little. OTOH if the kernel is aware of threads (either with kernel threads or LWP Cheers, Ben PS I find it interesting in the extreme that Sun first added a lot of support for multithreading to their OS, then came out with Java, a language touted for being very portable which couldn't be used without massive multi-threading. Java benchmarks unsurprisingly did much better on Sun's OS than on many other forms of Unix... _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com