| Author |
Book about what the JVM does with threads
|
Vinicius Munhoz
Greenhorn
Joined: Jan 28, 2010
Posts: 1
|
|
Hello!
Please i'm doing a final paper for the university and i need a book that explains about how the JVM manages the threads.
any one can recomend me a nice book about it?
Thank you,
VinÃcius
|
SCJP
|
 |
Henry Wong
author
Sheriff
Joined: Sep 28, 2004
Posts: 16687
|
|
Basically, all modern JVMs will delegate the threading tasks to the underlying threading system. For Linux, it will be the POSIX threading API. For Solaris, it will be Solaris threads. And for Windows, obviously, it will be the Windows threading system. This means that the behavior is passed down to the underlying operating system (and the user level library code) -- scheduling, priority levels mapping, support for priority inheritance, etc. etc. etc.
So... there isn't a single answer to your question. How the JVM manages threads is, hence, implementation specific.
Henry
|
Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
|
 |
Vedhas Pitkar
Ranch Hand
Joined: Jan 27, 2001
Posts: 445
|
|
|
Does that mean a multithreaded application will behave differently on the OS'es you mentioned above?
|
 |
Istvan Kovacs
Ranch Hand
Joined: May 06, 2010
Posts: 100
|
|
Vedhas Pitkar wrote:Does that mean a multithreaded application will behave differently on the OS'es you mentioned above?
A correctly written multithreaded application will work well on all platforms. However, there are some mistakes that are easy to make, and bad code may work on one platform and not on another. For example, long assignment may be implemented as two separate 32-bit writes; depending on the VM and hardware, it may possible to read a half-written long (if no correct synchronization is used; everything will work on all platforms if properly synchronized).
Playing with thread priorities is another issue: Java thread priorities must be mapped to the thread priorities supported by the underlying OS. If you rely on priorities in scheduling, you'll end up with a fragile, OS-dependent program.
A good book is Java Concurrency in Practice.
|
 |
aryan Sharma
Greenhorn
Joined: Oct 10, 2005
Posts: 27
|
|
|
you may want to look at the JVM spec to understand how exactly the threads are handled. you could use http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html for your reference.
|
 |
Maris Orbidans
Ranch Hand
Joined: Mar 08, 2004
Posts: 149
|
|
|
How threads interact is described in Java Memory Model. You can read the JMM specification or 'Java Concurrency in Practice' book.
|
 |
Vadym Ustymenko
Greenhorn
Joined: Jun 25, 2006
Posts: 5
|
|
|
Here is an article on how JVM manages resources shared in concurrent execution: http://javatip.com/2010/07/core-java/concurrency/thread-safe-without-synchronization/
|
 |
 |
|
|
subject: Book about what the JVM does with threads
|
|
|