|
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
ÀÎÅÍÆäÀ̽º´Â
¸®´õ »çÀÌ¿¡¼´Â °øÀ¯ °¡´ÉÇÏÁö¸¸, ¶óÀÌÅÍ¿¡´Â ¹èŸÀûÀ¸·Î ¼³Á¤ °¡´ÉÇÑ ¶ôÀ» Á¤ÀÇÇÕ´Ï´Ù. Á¦°øµÇ´Â °ÍÀº, ´ÜÀÏÀÇ ±¸Çö 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 µµ ÂüÁ¶ÇϽʽÿÀ.