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.

No comments:

Post a Comment