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

David Holmes david.holmes at oracle.com
Wed Oct 9 10:01:32 UTC 2019


On 9/10/2019 6:51 pm, 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?

Java post "Green Threads" employs a 1:1 model with operating system 
threads. However Solaris also had a M:N model between user-level threads 
and kernel threads (LWPs). So Java was not actively using anything 
fiber-like, just plain java.lang.Thread that mapped 1:1 to a Solaris UI 
Thread but it could get some of the benefits that we're ascribing to 
Fibers, when running on Solaris (with the appropriate configuration 
options).

https://docs.oracle.com/cd/E19455-01/806-5257/6je9h0349/index.html

David

> Thanks,
> Arek
> 


More information about the loom-dev mailing list