#1113 Add uml-reverse-mapper plugin
This commit is contained in:
65
reader-writer-lock/etc/reader-writer-lock.urm.puml
Normal file
65
reader-writer-lock/etc/reader-writer-lock.urm.puml
Normal file
@ -0,0 +1,65 @@
|
||||
@startuml
|
||||
package com.iluwatar.reader.writer.lock {
|
||||
class App {
|
||||
- LOGGER : Logger {static}
|
||||
+ App()
|
||||
+ main(args : String[]) {static}
|
||||
}
|
||||
class Reader {
|
||||
- LOGGER : Logger {static}
|
||||
- name : String
|
||||
- readLock : Lock
|
||||
- readingTime : long
|
||||
+ Reader(name : String, readLock : Lock)
|
||||
+ Reader(name : String, readLock : Lock, readingTime : long)
|
||||
+ read()
|
||||
+ run()
|
||||
}
|
||||
class ReaderWriterLock {
|
||||
- LOGGER : Logger {static}
|
||||
- currentReaderCount : int
|
||||
- globalMutex : Set<Object>
|
||||
- readerLock : ReadLock
|
||||
- readerMutex : Object
|
||||
- writerLock : WriteLock
|
||||
+ ReaderWriterLock()
|
||||
- doesWriterOwnThisLock() : boolean
|
||||
- isLockFree() : boolean
|
||||
+ readLock() : Lock
|
||||
+ writeLock() : Lock
|
||||
}
|
||||
-class ReadLock {
|
||||
- ReadLock()
|
||||
- acquireForReaders()
|
||||
+ lock()
|
||||
+ lockInterruptibly()
|
||||
+ newCondition() : Condition
|
||||
+ tryLock() : boolean
|
||||
+ tryLock(time : long, unit : TimeUnit) : boolean
|
||||
+ unlock()
|
||||
}
|
||||
-class WriteLock {
|
||||
- WriteLock()
|
||||
+ lock()
|
||||
+ lockInterruptibly()
|
||||
+ newCondition() : Condition
|
||||
+ tryLock() : boolean
|
||||
+ tryLock(time : long, unit : TimeUnit) : boolean
|
||||
+ unlock()
|
||||
}
|
||||
class Writer {
|
||||
- LOGGER : Logger {static}
|
||||
- name : String
|
||||
- writeLock : Lock
|
||||
- writingTime : long
|
||||
+ Writer(name : String, writeLock : Lock)
|
||||
+ Writer(name : String, writeLock : Lock, writingTime : long)
|
||||
+ run()
|
||||
+ write()
|
||||
}
|
||||
}
|
||||
ReaderWriterLock --> "-readerLock" ReadLock
|
||||
ReadLock --+ ReaderWriterLock
|
||||
WriteLock --+ ReaderWriterLock
|
||||
ReaderWriterLock --> "-writerLock" WriteLock
|
||||
@enduml
|
Reference in New Issue
Block a user