diff --git a/topics/basics/architectural_overview/threading/threading_model.md b/topics/basics/architectural_overview/threading/threading_model.md index 5eace323e..f2ec4f208 100644 --- a/topics/basics/architectural_overview/threading/threading_model.md +++ b/topics/basics/architectural_overview/threading/threading_model.md @@ -69,26 +69,30 @@ This is implemented with a single application-wide [read-write (RW) lock](https: If a thread requires accessing a data model, it must acquire one of the locks: - +
- - - + + + + - - - + + + + - - - + + + + - - - + + + +
Read LockWrite Intent LockWrite LockRead LockWrite Intent LockWrite Lock
Allows a thread for reading data.Allows a thread for reading data and potentially upgrade to the write lock.Allows a thread for reading and writing data.Allows for:Reading dataReading data and potentially upgrade to the write lockReading and writing data
Can be acquired from any thread concurrently with other read locks and write intent lock.Can be acquired from any thread concurrently with read locks.Can be acquired only from EDT concurrently with a write intent lock acquired on EDT.Can be acquired from:Any thread concurrently with other read locks and write intent lockAny thread concurrently with read locksOnly from EDT concurrently with a write intent lock acquired on EDT
Can't be acquired if a write lock is held on another thread.Can't be acquired if another write intent lock or write lock is held on another thread.Can't be acquired if any other lock is held on another thread.Can't be acquired if:A write lock is held on another threadAnother write intent lock or write lock is held on another threadAny other lock is held on another thread