Monitor object

50
Monitor Object [email protected]

description

 

Transcript of Monitor object

Page 1: Monitor object

Monitor Object

[email protected]

Page 2: Monitor object

Multiple Threads

Page 3: Monitor object

Multiple Threads

Shared Object

Page 4: Monitor object

Thread-Safe

Page 5: Monitor object

Passive-Object

Page 6: Monitor object

Thread-Safe

Passive-Object Pattern

Page 7: Monitor object

Active Object

THREAD 1

THREAD 2

Caller ITEM 1

ITEM 1

ITEM 1

Processor

Page 8: Monitor object

Active Object

Caller Thread

other-Threads

Process Thread

Page 9: Monitor object

Passive Object

THREAD 1

THREAD 2

ITEM 1

ITEM 1

ITEM 1

Processor Processor

Page 10: Monitor object

Passive Object

Each Thread Process

Shared Object

Page 11: Monitor object

Active Object

Monitor Object

VS

Page 12: Monitor object

Active Object

Monitor Object

VS

Page 13: Monitor object

Monitor Object is

Page 14: Monitor object

Monitor Object is

Part Of Active Object

Page 15: Monitor object

EXAMPLE

Page 16: Monitor object

QUEUE

Page 17: Monitor object

IN Multi-Thread

Page 18: Monitor object

NEED Synchronization

Mechanisms

Page 19: Monitor object

ITEM 1

ITEM 2

ITEM 3

ITEM 4

ITEM 5

THREAD 1 THREAD 2

Page 20: Monitor object

ITEM 1

ITEM 2

ITEM 3

ITEM 4

ITEM 5

THREAD 1 THREAD 2

INSERT

Page 21: Monitor object

ITEM 1

ITEM 2

ITEM 3

ITEM 4

ITEM 5

THREAD 1 THREAD 2

INSERT INSERT

Page 22: Monitor object

ITEM 1

ITEM 2

ITEM 3

ITEM 4

ITEM 5

THREAD 1 THREAD 2

INSERT INSERT

BROKEN

Page 23: Monitor object

No Item In

Queue

Page 24: Monitor object

No Items

THREAD 1 THREAD 2

Pop

Page 25: Monitor object

No Items

THREAD 1 THREAD 2

Pop

WAIT

Page 26: Monitor object

THREAD 1 THREAD 2

Pop

WAIT

ITEM 1

Insert

Page 27: Monitor object

THREAD 1 THREAD 2

Pop

NOTIFY

ITEM 1

Insert

Page 28: Monitor object

THREAD 1 THREAD 2

Pop

ITEM 1

Page 29: Monitor object

Monitor Object

Page 30: Monitor object
Page 31: Monitor object
Page 32: Monitor object

With Thread-Safe Interface

Page 33: Monitor object

External Interface

Page 34: Monitor object

Thread-Safe Interface

Page 35: Monitor object

Lock and Notify – 1/2

Page 36: Monitor object

Lock and Notify – 2/2

Page 37: Monitor object

Lock and Notify – 2/2

Page 38: Monitor object

Empty and Full

Page 39: Monitor object

put

Page 40: Monitor object

Get

Page 41: Monitor object

SYNCH_STRATEGY 1/2

Page 42: Monitor object

SYNCH_STRATEGY 2/2

Page 43: Monitor object

Connection Pool

Page 44: Monitor object

Multi-Thread Queue

Page 45: Monitor object

Benefits

Simplification of concurrency control

Simplification of scheduling method execution

Page 46: Monitor object

Benefits

Simplification of concurrency control

Simplification of scheduling method execution

Page 47: Monitor object

Liabilities

Complicated extensibility of coupling with Monitor Object’s

Inheritance anomaly

Nested Monitor Lockout

Page 48: Monitor object

Liabilities

Complicated extensibility of coupling with Monitor Object’s

Inheritance anomaly

Nested Monitor Lockout

Page 49: Monitor object

Liabilities

Complicated extensibility of coupling with Monitor Object’s

Inheritance anomaly

Nested Monitor Lockout

Page 50: Monitor object

THANK YOU!