|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
ÂüÁ¶Ã³:
¼³¸í
ÀÎÅÍÆäÀ̽º °³¿ä | |
---|---|
Condition | Condition´Â
Object °¨½Ã ¸Þ¼µå (wait ,
notify ¹× notifyAll )¸¦ º°°³ÀÇ °´Ã¼ ·Î ºÐÇØÇØ, ±×°Íµé¿¡ ÀÓÀÇ Lock ±¸ÇöÀÇ »ç¿ëÀ» Á¶ÇÕÇØ, °´Ã¼ ¸¶´Ù º¹¼öÀÇ ´ë±â ¼¼Æ®¸¦ º¸°ü À¯ÁöÇÏ´Â È¿°ú¸¦ ºÎ¿©ÇÕ´Ï´Ù. |
Lock | Lock ±¸ÇöÀº, synchronized ¸Þ¼µå³ª ¹®ÀåÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î Ãëµæ °¡´ÉÇÑ ¶ô Á¶ÀÛº¸´Ù ±¤¹üÀ§ÇÑ ¶ô Á¶ÀÛÀ» Á¦°øÇÕ´Ï´Ù. |
ReadWriteLock | ReadWriteLock´Â
Àбâ Àü¿ë
Á¶ÀÛ¿ë ¹× write¹«ÀÇ, °ü·ÃÇϴ¶ô
Æä¾î¸¦ Á¦¾îÇÕ´Ï´Ù. |
Ŭ·¡½º °³¿ä | |
---|---|
AbstractQueuedSynchronizer | ºí·Ï ¶ô ¹× ¼±ÀÔó ¹æÆí (FIFO) ´ë±â Å¥¿¡ ÀÇÁ¸µÈ °ü·Ã µ¿±âÈ ÀåÄ¡ (semaphore, À̺¥Æ®µî)¸¦ ±¸ÇöÇϴ üÁ¦¸¦ Á¦°øÇÕ´Ï´Ù. |
LockSupport | ¶ô ¹× ´Ù¸¥ µ¿±â Ŭ·¡½º¸¦ ÀÛ¼ºÇϱâ À§ÇÑ,
±âº»ÀûÀÎ thread ºí·Ï ¿ø½ÃÀûÀÌ Å¬·¡½º´Â ±×°ÍÀ» »ç¿ëÇÏ´Â °¢ thread¿Í ÆÄ ¹ÌÆ®¸¦ (Semaphore Ŭ·¡½º¶ó°í ÇÏ´Â ¹Ì·Î) °ü·ÃÁþ½À´Ï´Ù. |
ReentrantLock | synchronized ¸Þ¼µå ¹× ¹®ÀåÀ» »ç¿ëÇØ ¾×¼¼½º ÇÏ´Â ¾Ï¹¬ÀÇ °¨½Ã ¶ô°ú °°Àº ±âº» µ¿ÀÛ ¹× ½Ã¸àƽ½º¸¦ »ç¿ëÇØ, ÇÑÆí È®Àå ±â´ÉÀ» °¡Áö´Â ÀçÀÔ °¡´ÉÇÑ »óÈ£ ¹èŸ Lock ÀÔ´Ï´Ù. |
ReentrantReadWriteLock | ReentrantLock ¿Í
À¯»çÇÑ ½Ã¸àƽ½º¸¦ Áö¿øÇÏ´Â ReadWriteLock
±¸Çö. |
ReentrantReadWriteLock.ReadLock | ReentrantReadWriteLock.readLock() ¸Þ¼µå¿¡ ÀÇÇØ ¸®ÅϵÈ
¶ô |
ReentrantReadWriteLock.WriteLock | ReentrantReadWriteLock.writeLock() ¸Þ¼µå¿¡ ÀÇÇØ ¸®ÅϵÈ
¶ô |
ºôÆ®ÀÎÀÇ µ¿±â ¹× °¨½Ã¿Í ±¸º°µÈ »óÅÂÀÇ ¶ô ¹× ´ë±â¿ëÀÇ Ã¼Á¦¸¦ Á¦°øÇÏ´Â ÀÎÅÍÆäÀ̽º ¹× Ŭ·¡½º. ÀÌ Ã¼Á¦¸¦ »ç¿ëÇϸé, ±¸¹®Àº Ãë±ÞÇϱ⠾î·Á¿öÁý´Ï´Ù¸¸, ¶ô ¹× »óŸ¦ º¸´Ù À¯¿¬ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
Lock
ÀÎÅÍÆäÀ̽º°¡ Áö¿øÇÏ´Â ¶ô Á¦¾î´Â ½Ã¸àƽ½º (ÀçÀÔ°¡´É, ±Õµîµî)¿¡ ÀÇÇØ ´Ù¸¨´Ï´Ù. ¶Ç, ¡¸hand-over-hand¡¹³ª ¡¸lock reordering¡¹¾Ë°í¸®ÁòÀ» Æ÷ÇÔÇÑ ºñºí·Ï ±¸Á¶ÀÇ ÄÁÅØ½ºÆ®
À¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÖµÈ ±¸ÇöÀº, ReentrantLock
ÀÔ´Ï´Ù.
°°ÀÌReadWriteLock
ÀÎÅÍÆäÀ̽º´Â ¸®´õ »çÀÌ¿¡¼´Â °øÀ¯ °¡´ÉÇÏÁö¸¸, Writer¿¡´Â ¹èŸÀûÀ¸·Î ¼³Á¤ °¡´ÉÇÑ ¶ôÀ» Á¤ÀÇÇÕ´Ï´Ù. Á¦°øµÇ´Â °ÍÀº ´ÜÀÏÀÇ ±¸Çö ReentrantReadWriteLock
»ÓÀÔ´Ï´Ù. À̰ÍÀº ÀÌ ±¸Çö¸¸À¸·Î Ç¥ÁØÀûÀÎ »ç¿ë ÄÁÅØ½ºÆ®
ÀÇ ´ëºÎºÐ¿¡ ´ëÀÀÇÒ ¼ö Àֱ⠶§¹®¿¡ÀÔ´Ï´Ù. ´Ù¸¸, ÇÁ·Î±×·¡¸Ó´Â µ¶ÀÚÀûÀÎ ±¸ÇöÀ» ÀÛ¼ºÇØ ºñÇ¥ÁØÀÇ ¿ä°Ç¿¡ ´ëÀÀÇÒ ¼ö ÀÖ½À´Ï´Ù.
Condition
ÀÎÅÍÆäÀ̽º´Â Lock¿Í
ÀÇ °ü·ÃÁþ°íÀÇ °¡´ÉÇÑ »óÅ º¯¼ö¸¦ ±â¼úÇÕ´Ï´Ù. À̰͵éÀº ¾×¼¼½º¿¡ Object.wait¸¦ »ç¿ëÇÏ´Â ¾Ï¹¬ÀÇ °¨½Ã¿Í »ç¿ë¹ýÀÌ ´à½À´Ï´Ù¸¸, È®ÀåµÈ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ƯÈ÷, º¹¼öÀÇ Condition °´Ã¼¸¦ ´ÜÀÏÀÇ Lock¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ȣȯ¼ºÀÇ ¹®Á¦¸¦ ȸÇÇÇϱâ À§Çؼ
Condition ¸Þ¼µåÀÇ À̸§Àº ´ëÀÀÇÏ´Â Object ¹öÀü°ú´Â ´Ù¸¥ °ÍÀÌ µË´Ï´Ù.
AbstractQueuedSynchronizer
Ŭ·¡½º´Â ºí·Ï µÈ threadÀÇ Å¥À׿¡
ÀÇÁ¸µÈ ¶ô ¹× ´Ù¸¥ µ¿±âÈ ÀåÄ¡¸¦ Á¤ÀÇÇϱâ À§ÇÑ À¯¿ëÇÑ ½´ÆÛ Ŭ·¡½º·Î¼ ±â´ÉÇÕ´Ï´Ù. LockSupport
Ŭ·¡½º´Â Ä¿½ºÅ͸¶ÀÌÁî µÈ µ¶ÀÚÀûÀÎ ¶ô Ŭ·¡½º¸¦ ±¸ÇöÇÏ´Â °³¹ßÀÚÀü¿ëÀÇ Àú·¹º§ÀÇ ºí·Ï ¹× ºí·Ï ÇØÁ¦¸¦ Áö¿ø
ÇÕ´Ï´Ù.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.