JavaTM 2 Platform
Standard Ed. 5.0

ÆÐÅ°Áö java.util.concurrent.locks

ºôÆ®ÀÎÀÇ µ¿±â ¹× °¨½Ã¿Í ±¸º°µÈ »óÅÂÀÇ ¶ô ¹× ´ë±â¿ëÀÇ Ã¼Á¦¸¦ Á¦°øÇÏ´Â ÀÎÅÍÆäÀ̽º ¹× Ŭ·¡½º.

ÂüÁ¶Ã³:
          ¼³¸í

ÀÎÅÍÆäÀ̽º °³¿ä
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() ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ ¶ô
 

ÆÐÅ°Áö java.util.concurrent.locks ¼³¸í

ºôÆ®ÀÎÀÇ µ¿±â ¹× °¨½Ã¿Í ±¸º°µÈ »óÅÂÀÇ ¶ô ¹× ´ë±â¿ëÀÇ Ã¼Á¦¸¦ Á¦°øÇÏ´Â ÀÎÅÍÆäÀ̽º ¹× Ŭ·¡½º. ÀÌ Ã¼Á¦¸¦ »ç¿ëÇϸé, ±¸¹®Àº Ãë±ÞÇϱ⠾î·Á¿öÁý´Ï´Ù¸¸, ¶ô ¹× »óŸ¦ º¸´Ù À¯¿¬ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

Lock ÀÎÅÍÆäÀ̽º°¡ Áö¿øÇÏ´Â ¶ô Á¦¾î´Â ½Ã¸àƽ½º (ÀçÀÔ°¡´É, ±Õµîµî)¿¡ ÀÇÇØ ´Ù¸¨´Ï´Ù. ¶Ç, ¡¸hand-over-hand¡¹³ª ¡¸lock reordering¡¹¾Ë°í¸®ÁòÀ» Æ÷ÇÔÇÑ ºñºí·Ï ±¸Á¶ÀÇ ÄÁÅؽºÆ® À¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÖµÈ ±¸ÇöÀº, ReentrantLock ÀÔ´Ï´Ù.

°°ÀÌReadWriteLock ÀÎÅÍÆäÀ̽º´Â ¸®´õ »çÀÌ¿¡¼­´Â °øÀ¯ °¡´ÉÇÏÁö¸¸, Writer¿¡´Â ¹èŸÀûÀ¸·Î ¼³Á¤ °¡´ÉÇÑ ¶ôÀ» Á¤ÀÇÇÕ´Ï´Ù. Á¦°øµÇ´Â °ÍÀº ´ÜÀÏÀÇ ±¸Çö ReentrantReadWriteLock »ÓÀÔ´Ï´Ù. ÀÌ°ÍÀº ÀÌ ±¸Çö¸¸À¸·Î Ç¥ÁØÀûÀÎ »ç¿ë ÄÁÅؽºÆ® ÀÇ ´ëºÎºÐ¿¡ ´ëÀÀÇÒ ¼ö Àֱ⠶§¹®¿¡ÀÔ´Ï´Ù. ´Ù¸¸, ÇÁ·Î±×·¡¸Ó´Â µ¶ÀÚÀûÀÎ ±¸ÇöÀ» ÀÛ¼ºÇØ ºñÇ¥ÁØÀÇ ¿ä°Ç¿¡ ´ëÀÀÇÒ ¼ö ÀÖ½À´Ï´Ù.

Condition ÀÎÅÍÆäÀ̽º´Â Lock¿Í ÀÇ °ü·ÃÁþ°íÀÇ °¡´ÉÇÑ »óÅ º¯¼ö¸¦ ±â¼úÇÕ´Ï´Ù. À̰͵éÀº ¾×¼¼½º¿¡ Object.wait¸¦ »ç¿ëÇÏ´Â ¾Ï¹¬ÀÇ °¨½Ã¿Í »ç¿ë¹ýÀÌ ´à½À´Ï´Ù¸¸, È®ÀåµÈ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ƯÈ÷, º¹¼öÀÇ Condition °´Ã¼¸¦ ´ÜÀÏÀÇ Lock¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ȣȯ¼ºÀÇ ¹®Á¦¸¦ ȸÇÇÇϱâ À§Çؼ­ Condition ¸Þ¼­µåÀÇ À̸§Àº ´ëÀÀÇÏ´Â Object ¹öÀü°ú´Â ´Ù¸¥ °ÍÀÌ µË´Ï´Ù.

AbstractQueuedSynchronizer Ŭ·¡½º´Â ºí·Ï µÈ threadÀÇ Å¥À׿¡ ÀÇÁ¸µÈ ¶ô ¹× ´Ù¸¥ µ¿±âÈ­ ÀåÄ¡¸¦ Á¤ÀÇÇϱâ À§ÇÑ À¯¿ëÇÑ ½´ÆÛ Å¬·¡½º·Î¼­ ±â´ÉÇÕ´Ï´Ù. LockSupport Ŭ·¡½º´Â Ä¿½ºÅ͸¶ÀÌÁî µÈ µ¶ÀÚÀûÀÎ ¶ô Ŭ·¡½º¸¦ ±¸ÇöÇÏ´Â °³¹ßÀÚÀü¿ëÀÇ Àú·¹º§ÀÇ ºí·Ï ¹× ºí·Ï ÇØÁ¦¸¦ Áö¿ø ÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.5

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.