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

Arkadiusz Gasiński jigga at jigga.pl
Sat Oct 12 20:03:31 UTC 2019


Hi,

Thanks for clarifying. I got only your mail directly, but noticed in the
loom-dev digests that other replied as well, thanks!

One follow up question I have now is: do fibers actually employ the M:N
model? A week ago I would have said without any doubt that they do, but I
guess I've read too much about multithreading models recently and now I'm
confused.

Thanks,
Arek



On Wed, Oct 9, 2019 at 12:01 PM David Holmes <david.holmes at oracle.com>
wrote:

> 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