Meaningless Drivel is fun!*
The moose likes Threads and Synchronization and the fly likes Grren Thread/User Thread..! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Threads and Synchronization
Bookmark "Grren Thread/User Thread..!" Watch "Grren Thread/User Thread..!" New topic
Author

Grren Thread/User Thread..!

Nilesh Raje
Ranch Hand

Joined: Aug 02, 2005
Posts: 153
Hi,

I belive green thread are the threads that are created and managed by the JVM and it cannot take advantage of multiple process as its runs within single process that JVM is in. Actually JVM will exist in one of the native threads created by OS.

Well when we say java and some class file name on command prompt Is there some thread like green thread created by JVM that keeps listening for java executable files and as soon as we run the java file is it attached to that thread. Does JVM create thread for each java program that we run?

One more query is like what if we actually write a thread class?
I belive in this thread gets attached to the JVM created thread but the control is with the user as its user created? Am i Right?

Also then in this case will there be 2 stacks?? one for the thread from JVM and other from the User thread?

I would also like to know that can we install multiple JVM on Same OS say in different drives? and if we can then i belive we will have to use IPC or RMI to communicate as both JVM will be in different process?


Thanks and Regards,<br />Nilesh<br />SCJP 1.4, SCWCD 1.4
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18874
    
  40

I belive green thread are the threads that are created and managed by the JVM and it cannot take advantage of multiple process as its runs within single process that JVM is in. Actually JVM will exist in one of the native threads created by OS.


Green threads is a threading library that Java used many many years ago. I believe Java stopped using the green threads library, and switched to native threads, at either Java 1.1 or 1.2, don't remember.

With green threads, the OS doesn't see the threads. All context switching and other thread related stuff is implemented in the library. In modern JVMs, Java passes responsibility of threading to the underlying OS.

One more query is like what if we actually write a thread class?
I belive in this thread gets attached to the JVM created thread but the control is with the user as its user created? Am i Right?

Also then in this case will there be 2 stacks?? one for the thread from JVM and other from the User thread?


With modern JVMs, it is the OS that determines when a thread runs, and for how long. With old JVMs, that uses green threads, it is the threading library that does this (within the timeslice allocated to the JVM process). The user can set the priority which can affect the schedulling, but doesn't have absolute control.

Each thread in the process has it's own call stack.

I would also like to know that can we install multiple JVM on Same OS say in different drives? and if we can then i belive we will have to use IPC or RMI to communicate as both JVM will be in different process?


Yes, you can install and run multiple JVMs. They are separate processes if you run them at the same time. And yes, you can use RMI as a communication protocol.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Grren Thread/User Thread..!