|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
ÂüÁ¶Ã³:
¼³¸í
ÀÎÅÍÆäÀ̽º °³¿ä | |
---|---|
BlockingQueue<E> | ¿ä¼ÒÀÇ Ãëµæ½Ã¿¡ Å¥°¡ ºô ¶§±îÁö ´ë±âÇϰųª ¿ä¼ÒÀÇ Æ÷ÇԽÿ¡ Å¥³»ÀÇ °ø°£ÀÌ ÀÌ¿ë °¡´ÉÇÏ°Ô µÉ ¶§±îÁö ´ë±âÇÏ´Â Á¶ÀÛÀ» Ãß°¡ Áö¿øÇÏ´Â Queue . |
Callable<V> | °á°ú¸¦ µ¹·ÁÁִ ŽºÅ©. |
CompletionService<V> | »õ·Î¿î ºñµ¿±â ŽºÅ©ÀÇ »ý¼ºÀ» ¿Ï·áÇÊ Å½ºÅ©ÀÇ °á°úÀÇ ¼Òºñ·ÎºÎÅÍ ºÐ¸®ÇÏ´Â ¼ºñ½º. |
ConcurrentMap<K, V> | Ãß°¡ÀÇ ¿øÀÚÀû putIfAbsent, remove, replace ¸Þ¼µå¸¦ Á¦°øÇÏ´Â Map . |
Delayed | ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ µ¿ÀÛÇÏ´Â °´Ã¼¸¦ ¸¶Å©Çϱâ À§ÇÑ, È¥ÇÕ ½ºÅ¸ÀÏÀÇ ÀÎÅÍÆäÀ̽ºÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀº, getDelay ¸Þ¼µå¿Í Á¤ÇÕ¼ºÀÌ ÀÖ´Â ¼ø¼¸¦ Á¦°øÇÏ´Â compareTo ¸Þ¼µå¸¦ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. |
Executor | ¼Û½ÅµÈ Runnable ŽºÅ©¸¦ ½ÇÇàÇÏ´Â °´Ã¼. |
ExecutorService | Á¾·á¸¦ °ü¸®ÇÏ´Â ¸Þ¼µå ¹× 1°³
ÀÌ»óÀÇ ºñµ¿±â ŽºÅ©ÀÇ ÁøÇà »óȲÀ» ÃßÀûÇÏ´Â Future ¸¦
»ý¼º °¡´ÉÇÑ ¸Þ¼µå¸¦ Á¦°øÇÏ´Â Executor . |
Future<V> | Future´Â ºñµ¿±â °è»êÀÇ °á°ú¸¦ ³ªÅ¸³À´Ï´Ù. |
RejectedExecutionHandler | ThreadPoolExecutor ·Î ½ÇÇà ºÒ°¡´ÉÇÑ Å½ºÅ©ÀÇ Çڵ鷯 |
ScheduledExecutorService | ÁöÁ¤µÈ Áö¿¬ ½Ã°£ ÈÄ, ¶Ç´Â ÁÖ±âÀûÀ¸·Î Ä¿¸àµåÀÇ ½ÇÇàÀ» ½ºÄÉÁÙ °¡´ÉÇÑ ExecutorService . |
ScheduledFuture<V> | Ãë¼ÒÇØ °¡´ÉÇÑ, Áö¿¬ µÈ °á°ú »ý¼º ¾×¼Ç. |
ThreadFactory | ¿ä±¸¿¡ ÀÀÇØ »õ·Î¿î thread¸¦ ÀÛ¼ºÇÏ´Â °´Ã¼. |
Ŭ·¡½º °³¿ä | |
---|---|
AbstractExecutorService | ExecutorService ½ÇÇà ¸Þ¼µåÀÇ µðÆúÆ® ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù. |
ArrayBlockingQueue<E> | ¹è¿¿¡ ±Ù°ÅÇÏ´Â ¹Ù¿îµå Çü½Äºí·Ï Å¥ . |
ConcurrentHashMap<K, V> | ÃëµæÀÇ ¿ÏÀüÇÑ µ¿½Ã¼º ¹× ¿¹»óµÇ´Â Á¶Á¤ °¡´ÉÇÑ °»½Å µ¿½Ã¼ºÀ» Áö¿øÇÏ´Â ÇØ½Ã Å×À̺í. |
ConcurrentLinkedQueue<E> | ¾È ¹Ù¿îµå Çü½ÄÀÇ thread ¼¼ÀÌÇÁÀΠť º£À̽ºÀÇ ¸µÅ© ³ëµå. |
CopyOnWriteArrayList<E> | ±âº»À¸·Î µÇ´Â ¹è¿ÀÇ »õ·Î¿î º¹»çº»À» ÀÛ¼ºÇÔÀ¸·Î½á
¸ðµç º¯°æ Á¶ÀÛ (Ãß°¡ ¼³Á¤µî)ÀÌ ±¸ÇöµÇ´Â ArrayList
thread ¼¼ÀÌÇÁÀÎ º¯¼öÀÔ´Ï´Ù. |
CopyOnWriteArraySet<E> | ¸ðµç Á¶ÀÛÀ¸·Î CopyOnWriteArrayList ¸¦
»ç¿ëÇÏ´Â Set . |
CountDownLatch | ´Ù¸¥ thread·Î ½ÇÇàÁßÀÇ Á¶ÀÛ ¼¼Æ®°¡ ¿Ï·áÇÒ ¶§±îÁö, 1°³ ÀÌ»óÀÇ thread¸¦ ´ë±â °¡´ÉÇÏ°Ô ÇÏ´Â µ¿±â Áö¿ø. |
CyclicBarrier | thread ¼¼Æ®ÀÇ °¢°¢ÀÌ °øÅëÀÇ ¹Ù¸®¾î Æ÷ÀÎÆ®¿¡ À̸¦ ¶§±îÁö ´ë±âÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÏ´Â µ¿±âÈ Áö¿ø ±â´É. |
DelayQueue<E extends Delayed> | Delayed ¿ä¼ÒÀÇ ¾È ¹Ù¿îµå Çü½Äºí·Ï Å¥ . |
Exchanger<V> | 2°³ÀÇ thread°¡ °´Ã¼¸¦ ±³È¯ °¡´ÉÇÑ µ¿±â Æ÷ÀÎÆ®. |
ExecutorCompletionService<V> | ŽºÅ©ÀÇ ½ÇÇàÀ¸·Î ÁöÁ¤µÈ Executor ¸¦
»ç¿ëÇÏ´Â CompletionService . |
Executors | ÀÌ ÆÐŰÁö·Î Á¤ÀÇµÈ Executor ,
ExecutorService ,
ScheduledExecutorService ,
ThreadFactory ¹× Callable Ŭ·¡½º¿ëÀÇ ÆÑÅ丮 ¹× À¯Æ¿¸®Æ¼ ¸Þ¼µå. |
FutureTask<V> | Ãë¼ÒÇØ °¡´ÉÇÑ ºñµ¿±â °è»ê. |
LinkedBlockingQueue<E> | ¸µÅ© ³ëµå¿¡ ±Ù°ÅÇÏ´Â ¿É¼ÇÀÇ ¹Ù¿îµå Çü½Äºí·Ï Å¥ . |
PriorityBlockingQueue<E> | PriorityQueue Ŭ·¡½º¿Í °°Àº ¼ø¼ºÎ ±ÔÄ¢À» »ç¿ëÇØ, ºí·Ï Ãëµæ Á¶ÀÛÀ» Á¦°øÇÏ´Â ¾È ¹Ù¿îµå Çü½Äºí·Ï Å¥ . |
ScheduledThreadPoolExecutor | ÁöÁ¤µÈ Áö¿¬ ÈÄ ¶Ç´Â ÁÖ±âÀûÀ¸·Î ½ÇÇàÇϱâ À§ÇÑ Ä¿¸àµå¸¦ Ãß°¡ ½ºÄÉÁÙ °¡´ÉÇÑ ThreadPoolExecutor . |
Semaphore | Ä«¿îÆ®¿¡ »ç¿ëµÇ´Â semaphore. |
SynchronousQueue<E> | °¢ put°¡ take¸¦ ´ë±âÇØ, ±× ¿ªµµ ½ÇÇàÇÒ Çʿ䰡 Àִºí·Ï Å¥ . |
ThreadPoolExecutor | ¸¹Àº °æ¿ì, Ç® µÈ º¹¼öÀÇ threadÀÇ ¾î´ÀÂÊÀ̵çÀ» »ç¿ëÇØ, ¼Û½ÅµÈ °¢ ŽºÅ©¸¦ ½ÇÇàÇÏ´Â ExecutorService . |
ThreadPoolExecutor.AbortPolicy | RejectedExecutionExceptionÀ» Throw ÇÑ´Ù, °ÅºÎµÈ ŽºÅ©ÀÇ Çڵ鷯. |
ThreadPoolExecutor.CallerRunsPolicy | executor°¡ ¼Ë´Ù¿î Çϰí ÀÖÁö ¾Ê´Â °æ¿ì¿¡ execute ¸Þ¼µåÀÇ thread È£Ãâ·Î °ÅºÎµÈ ŽºÅ©¸¦ Á÷Á¢ ½ÇÇàÇÑ´Ù, °ÅºÎµÈ ŽºÅ©ÀÇ Çڵ鷯. |
ThreadPoolExecutor.DiscardOldestPolicy | executor°¡ ¼Ë´Ù¿î Çϰí ÀÖÁö ¾Ê´Â °æ¿ì¿¡ °¡Àå ³°Àº ¹Ìó¸®ÀÇ ¿ä±¸¸¦ ÆÄ±âÇØ execute¸¦ Àç½ÃÇàÇÑ´Ù, °ÅºÎµÈ ŽºÅ©ÀÇ Çڵ鷯. |
ThreadPoolExecutor.DiscardPolicy | °ÅºÎµÈ ŽºÅ©¸¦ ¿¹°í ¾øÀÌ ÆÄ±âÇÑ´Ù, °ÅºÎµÈ ŽºÅ©ÀÇ Çڵ鷯. |
¿°ÅÇüÀÇ °³¿ä | |
---|---|
TimeUnit | TimeUnit´Â ±â°£ÀÌ ÁöÁ¤µÈ ÀÔµµ ´ÜÀ§·Î ³ªÅ¸³À´Ï´Ù. |
¿¹¿Ü °³¿ä | |
---|---|
BrokenBarrierException | °íÀå »óÅ¿¡ ÀÖ´ÂÁö, threadÀÇ ´ë±âÁß¿¡ °íÀå »óÅ¿¡ µé¾î°¡´Â ¹Ù¸®¾î¸¦, thread°¡ ´ë±âÇÏ·Á°í Çϰí ÀÖÀ» ¶§ ¹ß»ýµÇ´Â ¿¹¿ÜÀÔ´Ï´Ù. |
CancellationException | ŽºÅ©°¡ »èÁ¦µÇ¾ú±â ¶§¹®¿¡
FutureTask µîÀÇ °ªÀ» »ý¼ºÇϴ ŽºÅ©ÀÇ °á°ú¸¦ ÃëµæÇÒ ¼ö ¾ø´Â °ÍÀ» ³ªÅ¸³»´Â ¿¹¿Ü. |
ExecutionException | ¿¹¿ÜÀÇ Throw¿¡ ÀÇÇØ Áß´ÜµÈ Å½ºÅ©ÀÇ °á°ú¸¦ ÃëµæÇÏ·Á°í ÇßÀ» ¶§¿¡ ¹ß»ýµÇ´Â ¿¹¿Ü. |
RejectedExecutionException | ŽºÅ©¸¦ ¹Þ¾Æµé¿© ½ÇÇàÇÒ ¼ö ¾ø´Â °æ¿ì¿¡
Executor ¿¡ ÀÇÇØ ¹ß»ýµÇ´Â ¿¹¿Ü |
TimeoutException | ºí·Ï Á¶ÀÛÀÌ Å¸ÀÓ ¾Æ¿ô ÇßÀ» ¶§¿¡ ¹ß»ýµÇ´Â ¿¹¿Ü. |
º¸Åë, À¯Æ¿¸®Æ¼ Ŭ·¡½º´Â º´Çà ÇÁ·Î±×·¡¹ÖÀ¸·Î À¯¿ëÇÕ´Ï´Ù. ÀÌ ÆÐŰÁö¿¡´Â ¸î°³ÀÇ ¼Ò±Ô¸ðÀÇ Ç¥ÁØÈ µÈ È®Àå °¡´É üÁ¦ ¹× Æí¸®¼ºÀÌ ³ô°í, ´Ù¸¥ Á¡¿¡¼´Â ´ÜÁ¶·Î¿ö ±¸ÇöÀÇ °ï¶õÇÑ ±â´ÉÀ» Á¦°øÇϴ Ŭ·¡½º°¡ Æ÷ÇԵ˴ϴÙ. ÀÌÇÏ¿¡ ÁÖ¿ä ÄÄÆÛ³ÍÆ®¿¡ ´ëÇØ °£°áÇÏ°Ô ¼³¸íÇÕ´Ï´Ù. locks ¹× atomic ÆÐŰÁöµµ ÂüÁ¶ÇϽʽÿÀ.
Executor
´Â
thread Ç®, ºñµ¿±â ÀÔÃâ·Â ¹× °æ·® ŽºÅ© üÁ¦¸¦ Æ÷ÇÔÇÑ, thread¸¦ ´àÀº Ä¿½ºÅÒ ÇϺÎÁ¶Á÷À» Á¤ÀÇÇϱâ À§ÇÑ Ç¥ÁØÈ µÈ ´Ü¼øÇÑ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. »ç¿ëÁßÀÇ ±¸»ó Executor Ŭ·¡½º¿¡ ÀÀÇØ, »õ·Î¿î ÀÛ¼ºµÈ thread, ±âÁ¸ÀÇ Å½ºÅ© ½ÇÇà thread, ¶Ç´Â execute()¸¦ È£ÃâÇÏ´Â thread³»¿¡¼ ŽºÅ©¸¦ Â÷·ÊÂ÷·Ê ¶Ç´Â µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ExecutorService
´Â
º¸´Ù ¿Ï¼ºµµÀÇ ³ôÀº µ¿±â ŽºÅ© ½ÇÇà üÁ¦¸¦ Á¦°øÇÕ´Ï´Ù. ExecutorService´Â
ŽºÅ©ÀÇ Å¥À× ¹× ½ºÄÉÁÙ¸µÀ» °ü¸®ÇØ, Á¦¾îµÈ ¼Ë´Ù¿îÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
ScheduledExecutorService
¼ºê ÀÎÅÍÆäÀ̽º´Â Áö¿¬ ¹× ÁÖ±âÀûÀΠŽºÅ© ½ÇÇà Áö¿ø¸¦ Ãß°¡ÇÕ´Ï´Ù. ExecutorServices´Â
Runnable
¿Í
À¯»çÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Â Callable
·Î Ç¥ÇöµÇ´Â ÀÓÀÇÀÇ ÇÔ¼öÀÇ ºñµ¿±â ½ÇÇàÀ» °áÁ¤ÇÏ´Â ¸Þ¼µå¸¦ Á¦°øÇÕ´Ï´Ù. Future
´Â
ÇÔ¼öÀÇ °á°ú¸¦ µ¹·ÁÁÖ°í, ½ÇÇàÀÌ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇº° °¡´ÉÇÏ°Ô ÇØ, ½ÇÇàÀ» Ãë¼ÒÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÕ´Ï´Ù.
±¸Çö. ThreadPoolExecutor
¹× ScheduledThreadPoolExecutor
Ŭ·¡½º´Â Æ©´× °¡´ÉÇØ À¯¿¬¼ºÀÇ ³ôÀº thread Ç®À» Á¦°øÇÕ´Ï´Ù. Executors
Ŭ·¡½º´Â Executor
°¡Àå ÀϹÝÀûÀÎ Á¾·ù ¹× ±¸¼ºÀÇ ÆÑÅ丮 ¸Þ¼µå ¹× À̰͵鿡 ƯÈ÷ ´ëÀÀÇÏ°í ½ÍÀº ±¸µÎÀΰ¡ÀÇ À¯Æ¿¸®Æ¼ ¸Þ¼µå¸¦ Á¦°øÇÕ´Ï´Ù. Executor¿¡ ±Ù°ÅÇÏ´Â ´Ù¸¥ À¯Æ¿¸®Æ¼¿¡´Â Future
ÀϹÝÀûÀÎ È®Àå °¡´É ±¸ÇöÀ» Á¦°øÇÏ´Â ±¸»ó Ŭ·¡½º FutureTask
¹× ºñµ¿±â ŽºÅ© ±×·ìÀÇ Ã³¸® Á¶Á¤À» Áö¿øÇÏ´Â ExecutorCompletionService
°¡ Æ÷ÇԵ˴ϴÙ.
ConcurrentLinkedQueue
Ŭ·¡½º´Â È¿À² ¹× È®À强ÀÌ ³ô°í, thread ¼¼ÀÌÇÁÀÎ ºñºí·ÎÅ· FIFO Å¥¸¦ Á¦°øÇÕ´Ï´Ù. java.util.concurrent
5°³ÀÇ ±¸Çö LinkedBlockingQueue
,
ArrayBlockingQueue
,
SynchronousQueue
,
PriorityBlockingQueue
¹× DelayQueue
´Â
put ¹× take
ºí·ÎÅ· ¹öÀüÀ» Á¤ÀÇÇÏ´Â È®ÀåµÈ BlockingQueue
ÀÎÅÍÆäÀ̽º¸¦ Áö¿ø
ÇÕ´Ï´Ù. ÇÁ·Îµà¼ ÄÁ½´¸Ó(consumer), ¸Þ¼¼Áö ó¸®, º´Çà ŽºÅ© ½ÇÇà ¹× °ü·ÃµÈ º´Çà ¼³°è¿ëÀÇ °¡Àå ÀϹÝÀûÀÎ »ç¿ë ÄÁÅØ½ºÆ®Àº ´Ù¸¥ Ŭ·¡½ºÀÇ ´ë»óÀÌ µË´Ï´Ù.
TimeUnit
Ŭ·¡½º´Â ŸÀÓ ¾Æ¿ô¿¡ ±Ù°ÅÇÏ´Â Á¶ÀÛÀ» ÁöÁ¤ ¹× Á¦¾îÇϱâ À§ÇÑ º¹¼öÀÇ »ó¼¼ (³ª³ëÃʸ¦ Æ÷ÇÔÇÑ´Ù)¸¦ Á¦°øÇÕ´Ï´Ù. ÆÐŰÁö³»ÀÇ ´ëºÎºÐÀÇ Å¬·¡½º¿¡´Â ¹«Á¦ÇÑÀÇ ´ë±â¿¡ ´õÇØÅ¸ÀÓ ¾Æ¿ô¿¡ ±Ù°ÅÇÏ´Â Á¶ÀÛÀÌ Æ÷ÇԵ˴ϴÙ. ŸÀÓ ¾Æ¿ôÀ» »ç¿ëÇÏ´Â °æ¿ì´Â Ç×»ó, ¸Þ¼µå°¡ ŸÀÓ ¾Æ¿ôÀ» ³ªÅ¸³»±â Àü¿¡ ´ë±âÇÒ Çʿ䰡 ÀÖ´Â ÃÖ¼Ò ½Ã°£ÀÌ, ŸÀÓ ¾Æ¿ô¿¡ ÀÇÇØ ÁöÁ¤µË´Ï´Ù. ±¸ÇöÀº ŸÀÓ ¾Æ¿ôÀÇ ¹ß»ý ´ÙÀ½¿¡ ¿Ã »Ó »¡¸® ±×°ÍÀ» °ËÃâÇϵµ·Ï ÃÖ¼±ÀÌ ³ë·ÂÇÕ´Ï´Ù¸¸, ŸÀÓ ¾Æ¿ôÀÇ °ËÃâ·ÎºÎÅÍ Å¸ÀÓ ¾Æ¿ô ÈÄ¿¡ thread°¡ ½ÇÁ¦·Î Àç½ÇÇàµÇ¾î±îÁöÀÇ »çÀÌ¿¡ ¹«Á¦ÇÑÀÇ ½Ã°£ÀÌ °æ°úÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
Semaphore
is a classic concurrency tool.
CountDownLatch
is a very simple yet verySemaphore
´Â
Ç¥ÁØÀûÀÎ concurrent processing ÅøÀÔ´Ï´Ù. CountDownLatch
´Â
¸Å¿ì ´Ü¼øÇÕ´Ï´Ù¸¸, ÁöÁ¤µÈ ¼öÀÇ ½ÅÈ£, À̺¥Æ®, ¶Ç´Â »óÅ¿¡ À̸¦ ¶§±îÁö ºí·ÏÇϱâ À§ÇÑ,
ÀϹÝÀûÀÎ À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. CyclicBarrier
´Â
ÀϺÎÀÇ º´Çà ÇÁ·Î±×·¡¹ÖÀ¸·Î µµ¿òÀÌ µÇ´Â ¼³Á¤ °¡´ÉÇÑ ´ÙÁß µ¿±â Æ÷ÀÎÆ®ÀÔ´Ï´Ù. Exchanger
¸¦
»ç¿ëÇϸé, 2°³ÀÇ thread°¡ ¸¸³µÀ» ¶§¿¡ °´Ã¼¸¦ ±³È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù
. À̰ÍÀº ¸î°³ÀÇ ÆÄÀÌÇÁ¶óÀÎ ¼³°è·Î À¯¿ëÇÕ´Ï´Ù. (¡ÚÄÚ¸àÆ® : ÀÌ ¹®ÀåÀÇ Àü2°³ÀÇ ¹®ÀåÀº ¹ø¿ª ´ë»óÀ̶ó°í »ý°¢ÇÕ´Ï´Ù¸¸, ¹ø¿ª ´ë»ó¿Ü·Î¼ ű×È µÇ°í ÀÖ½À´Ï´Ù. ¹ø¿ª¹®À» Ãß°¡Çß½À´Ï´Ù. Ãß°¡ ºÎºÐ£º¡¸Semaphore
´Â
Ç¥ÁØÀûÀÎ concurrent processing ÅøÀÔ´Ï´Ù. CountDownLatch
´Â
¸Å¿ì ´Ü¼øÇÕ´Ï´Ù¸¸,¡¹¡Ú)
ConcurrentHashMap
,
CopyOnWriteArrayList
¹× CopyOnWriteArraySet
)À» Á¦°øÇÕ´Ï´Ù.
ÀÌ ÆÐŰÁöÀÇ ÀϺÎÀÇ Å¬·¡½º¿¡¼ »ç¿ëµÇ´Â Á¢µÎ»ç ¡¸Concurrent¡¹´Â À¯»çÇÑ ¡¸synchronized¡¹Å¬·¡½º ¹°¾î ±¸µÎÀΰ¡ÀÇ Á¡À¸·Î½á Â÷À̰¡ ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î, java.util.Hashtable ¹× Collections.synchronizedMap(new HashMap())´Â
µ¿±âÈ µË´Ï´Ù. ´Ù¸¸, ConcurrentHashMap
´Â ¡¸µ¿½Ã¡¹ÀÔ´Ï´Ù. µ¿½Ã Ä÷º¼ÇÀº thread ¼¼ÀÌÇÁÀÔ´Ï´Ù¸¸, ´ÜÀÏÀÇ ¹èŸ ¶ô¿¡ ÀÇÇØ Á¦¾îµÇÁö ¾Ê½À´Ï´Ù. ConcurrentHashMap
ƯÁ¤ÀÇ ÄÉÀ̽º¿¡¼´Â µ¿½Ã Ä÷º¼ÇÀº ÀÓÀǼöÀÇ µ¿½Ã read ¹× Á¶Àý °¡´ÉÇÑ ¼öÀÇ µ¿½Ã write¸¦ ¾ÈÀüÇÏ°Ô Çã¿ëÇÕ´Ï´Ù. ¡¸µ¿±âÈ µÇ¾ú´Ù¡¹Å¬·¡½º´Â ´ÜÀÏÀÇ ¶ôÀ» Æ÷ÇÔÇÑ
Ä÷º¼Ç¿¡ÀÇ ¾×¼¼½º ¸ðµç °ÍÀ» ½ºÄÉÀ̶óºñ¸®Æ¼¸¦ Èñ»ýÇØµµ ¸·À» Çʿ䰡 ÀÖ´Â °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù. º¹¼öÀÇ thread°¡ °øÅëÀÇ Ä÷º¼Ç¿¡ ¾×¼¼½º ÇÏ´Â °ÍÀÌ ¿¹»óµÇ´Â ´Ù¸¥ °æ¿ì¿¡´Â ÀϹÝÀûÀ¸·Î ¡¸µ¿½Ã¡¹¹öÀüÀÌ ¿ì¼öÇÕ´Ï´Ù. µ¿±âȵǾî ÀÖÁö ¾ÊÀº Ä÷º¼ÇÀº Ä÷º¼ÇÀÌ °øÀ¯µÇ¾î ÀÖÁö ¾ÊÀºÁö, ´Ù¸¥ ¶ôÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ¾×¼¼½º °¡´ÉÇÑ °æ¿ì°¡ ¶Ù¾î³³´Ï´Ù.
´ëºÎºÐÀÇ µ¿½Ã Collection ±¸Çö (´ëºÎºÐÀÇ Queue¸¦ Æ÷ÇÔÇÑ´Ù)¿¡¼´Â Iterator¿¡ ÀÇÇØ ÆÄ½ºÆ®ÆäÀ̸£Æ®¶ó¹Ù»ìÀº ¾Æ´Ï°í ¡¸¾àÇÑ Àϰü¼º¡¹ÀÌ Á¦°øµÇ´Â Á¡µµ java.util º¸Åë ÀÇ ±Ô¾à°ú´Â ´Ù¸¨´Ï´Ù. ¾àÇÑ Àϰü¼ºÀ» °¡Áö´Â ¹Ýº¹ÀÚ´Â thread ¼¼ÀÌÇÁÀÔ´Ï´Ù¸¸, ¹Ýµå½Ã ¹Ýº¹Áß¿¡ Ä÷º¼ÇÀ» ´Ù¿î ´çÇÒ ÇÊ¿ä´Â ¾ø±â ¶§¹®¿¡ ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÀÌÈÄÀÇ °»½ÅÀ» ¹Ý¿µÇÏ´Â Àϵµ ¹Ý¿µÇÏÁö ¾Ê´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.