Forums Register Login

Book about what the JVM does with threads

+Pie Number of slices to send: Send
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
+Pie Number of slices to send: Send


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
+Pie Number of slices to send: Send
Does that mean a multithreaded application will behave differently on the OS'es you mentioned above?
+Pie Number of slices to send: Send
 

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.
+Pie Number of slices to send: Send
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.
+Pie Number of slices to send: Send
How threads interact is described in Java Memory Model. You can read the JMM specification or 'Java Concurrency in Practice' book.
+Pie Number of slices to send: Send
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/
These are the worst of times and these are the best of times. And this is the best tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 1518 times.
Similar Threads
To scott and Henry
This week's giveaway!
what does daemon thread means?
threads: time-sliced versus preemptive
Questions about locks
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 29, 2024 09:04:42.