Showing posts with label Java Thread. Show all posts
Showing posts with label Java Thread. Show all posts

Nov 29, 2008

Important Points about Threads in Java


  1. To synchronize threads, the Java programming language uses monitors, which are a high-level mechanism for allowing only one thread at a time to execute a region of code protected by the monitor.
  2. The behavior of monitors is explained in terms of locks; there is a lock associated with each object.
  3. The methods wait, notify, and notifyAll of class Object support an efficient transfer of control from one thread to another.
  4. A thread can suspend itself using wait until such time as another thread awakens it using notify.
  5. Each thread has a working memory, in which it may keep copies of the values of variables from the main memory that is shared between all threads.
  6. To access a shared variable, a thread usually first obtains a lock and flushes its working memory. This guarantees that shared values will thereafter be loaded from the shared main memory to the threads working memory.
  7. When a thread unlocks a lock it guarantees the values it holds in its working memory will be written back to the main memory.
  8. Every thread has a working memory in which it keeps its own working copy of variables that it must use or assign. As the thread executes a program, it operates on these working copies. The main memory contains the master copy of every variable.
  9. The main memory also contains locks; there is one lock associated with each object. Threads may compete to acquire a lock.