Did Java on Solaris once had a Fiber-like threads?

"Chris Phillips"@T O ChrisPhi at LGonQn.Org
Wed Oct 9 17:22:16 UTC 2019


Hi
On 09/10/19 06:06 AM, David Holmes wrote:
> On 9/10/2019 7:28 pm, Dalibor Topic wrote:
>> You're probably looking for 
>> https://en.wikipedia.org/wiki/Green_threads . ;)
>
> Hmmmm, not quite how I remember Green Threads in Java. My recollection 
> was that Green Thread were for the early Windows and perhaps the 
> Solaris reference implementations. While the Solaris Production VM 
> (a.k.a ExactVM) used Solaris native threading. Hotspot used native 
> threading on all platforms.
>
> Cheers,
> David
As a former member of the JTG group that did the early work on Solaris 
threads, this is what I remember:

0) "Classic" JVM with "Green" threads.

1) A port of the "classic" JVM to the Solaris threads model [JDK1.1]. It 
was only m:n at that point. Lack of control of
threads and thread scheduling was an issue.

2) ExactVM, which was JDK 1.2.x in Solaris was written with the Solaris 
threads model, but took Posix threads into account.
Solaris introduced the direct model [1:1] library and you could use 
either model.

3  HotSpot (less clear here because it happened mostly in California) 
which was Posix threads.

Cheers!
Chris
>
>> cheers,
>> dalibor topic
>>
>> On 09.10.2019 10:51, Arkadiusz Gasiński wrote:
>>> Hi,
>>>
>>> I recently found the "*JDK 1.1 for Solaris Developer's Guide*" 
>>> article (
>>> https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqe/index.html), 
>>> which
>>> says, in the Many-to-Many Model section, that "*a program can have 
>>> as many
>>> threads as are appropriate without making the process too heavy or
>>> burdensome. In this model, a user-level threads library provides
>>> sophisticated scheduling of user-level threads above kernel threads. 
>>> The
>>> kernel needs to manage only the threads that are currently active. A
>>> many-to-many implementation at the user level reduces programming 
>>> effort as
>>> it lifts restrictions on the number of threads that can be 
>>> effectively used
>>> in an application.*"
>>>
>>> That's just the definition of the many-to-many model, but later in 
>>> the same
>>> section, it's written that "*The Java on Solaris operating 
>>> environment is
>>> the first many-to-many commercial implementation of Java on an MT 
>>> operating
>>> system*". If that's the case, it looks like there already was a 
>>> version of
>>> Java that had Fiber-like threads. Was it only some proprietary
>>> implementation just for Solaris? What happened to it?
>>>
>>> BTW, if I understand correctly, the current versions of Open/Oracle JDK
>>> employ the one-to-one multithreading models, correct?
>>>
>>> Thanks,
>>> Arek
>>>
>>
>
>
>



More information about the loom-dev mailing list