JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
Ŭ·¡½º ScheduledThreadPoolExecutor

java.lang.Object 
  »óÀ§¸¦ È®Àå java.util.concurrent.AbstractExecutorService 
      »óÀ§¸¦ È®Àå java.util.concurrent.ThreadPoolExecutor 
          »óÀ§¸¦ È®Àå java.util.concurrent.ScheduledThreadPoolExecutor
¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
Executor, ExecutorService, ScheduledExecutorService

public class ScheduledThreadPoolExecutor
extends ThreadPoolExecutor
implements ScheduledExecutorService

ÁöÁ¤µÈ Áö¿¬ ÈÄ ¶Ç´Â ÁÖ±âÀûÀ¸·Î ½ÇÇàÇϱâ À§ÇÑ Ä¿¸àµå¸¦ Ãß°¡ ½ºÄÉÁÙ °¡´ÉÇÑ ThreadPoolExecutor . º¹¼öÀÇ ¿öÅ©½º ·¹µå¸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì³ª, ThreadPoolExecutor (ÀÌ Å¬·¡½º¸¦ È®ÀåÇÑ´Ù)ÀÇ Á¦°øÇÏ´Â À¯¿¬¼ºÀ̳ª ±â´ÉÀÌ ÇÊ¿äÇÑ °æ¿ì, ÀÌ Å¬·¡½º¸¦ Timer º¸´Ù ¿ì¼±ÇØ »ç¿ëÇÕ´Ï´Ù.

Áö¿¬ ŽºÅ©´Â ±×°ÍÀÌ À¯È¿ÇÏ°Ô µÇ´Â ´ë·Î ½ÇÇàµË´Ï´Ù¸¸, À¯È¿ÇÏ°Ô µÈ ÈÄ ¾ðÁ¦ °³½ÃµÉ±î¿¡ °üÇؼ­ ¸®¾óŸÀÓÀÇ º¸ÁõÀº ¾ø½À´Ï´Ù. ½ÇÇà ½Ã°£ÀÌ Á¤È®ÇÏ°Ô °°°Ô ½ºÄÉÁÙ µÈ ŽºÅ©´Â ¼±ÀÔó ¹æÆí (FIFO)ÀÇ ¼Û½Å¼ø¼­¿¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.

ÀÌ Å¬·¡½º´Â ThreadPoolExecutor ·ÎºÎÅÍ »ó¼ÓµË´Ï´Ù¸¸, »ó¼ÓÇÑ Æ©´× ¸Þ¼­µåÀÇ ¸î°³Àΰ¡´Â À¯¿ëÇÏÁö´Â ¾Ê½À´Ï´Ù. ƯÈ÷, corePoolSize thread ¹× ¾È ¹Ù¿îµå Çü½ÄÀÇ Å¥¸¦ »ç¿ëÇÏ´Â °íÁ¤ »çÀÌÁîÀÇ Ç®·Î¼­ µ¿ÀÛÇϱâ À§ÇØ, maximumPoolSize¸¦ Á¶Á¤Çصµ À¯ÀÍÇÑ °á°ú´Â ¾òÀ» ¼ö ÀÖÁö ¾Ê½À´Ï´Ù.

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

Áßø(Nested) Ŭ·¡½º °³¿ä
 
Ŭ·¡½º java.util.concurrent. ThreadPoolExecutor ·ÎºÎÅÍ »ó¼ÓµÈ Áßø(Nested) Ŭ·¡½º/ÀÎÅÍÆäÀ̽º
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
 
»ý¼ºÀÚ °³¿ä
ScheduledThreadPoolExecutor (int corePoolSize)
          ÁöÁ¤ÇÑ ÄÚ¾î Ç® »çÀÌÁî·Î »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
ScheduledThreadPoolExecutor (int corePoolSize, RejectedExecutionHandler  handler)
          ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
ScheduledThreadPoolExecutor (int corePoolSize, ThreadFactory  threadFactory)
          ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
ScheduledThreadPoolExecutor (int corePoolSize, ThreadFactory  threadFactory, RejectedExecutionHandler  handler)
          ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
 
¸Þ¼­µå °³¿ä
 void execute (Runnable  command)
          Á¦·ÎÀÇ Áö¿¬ ¿ä±¸·Î Ä¿¸àµå¸¦ ½ÇÇàÇÕ´Ï´Ù.
 boolean getContinueExistingPeriodicTasksAfterShutdownPolicy ()
          ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áֱ⠎ºÅ©ÀÇ ½ÇÇàÀ» °è¼ÓÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ÃëµæÇÕ´Ï´Ù.
 boolean getExecuteExistingDelayedTasksAfterShutdownPolicy ()
          ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áö¿¬ ŽºÅ©¸¦ ½ÇÇàÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ÃëµæÇÕ´Ï´Ù.
 BlockingQueue <Runnable > getQueue ()
          ÀÌ executor°¡ »ç¿ëÇϴ ŽºÅ© Å¥¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 boolean remove (Runnable  task)
          ÀÌ Å½ºÅ©°¡ Á¸ÀçÇÏ´Â °æ¿ì, executor ³»ºÎ Å¥·ÎºÎÅÍ »èÁ¦ÇØ, ¾ÆÁ÷ ½ÃÀÛÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ½ÇÇàµÇÁö ¾Ê°Ô ÇÕ´Ï´Ù.
<V> ScheduledFuture <V>
schedule (Callable <V> callable, long delay, TimeUnit  unit)
          ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ScheduledFuture¸¦ ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.
 ScheduledFuture <? > schedule (Runnable  command, long delay, TimeUnit  unit)
          ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ´Ü¹ßÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.
 ScheduledFuture <? > scheduleAtFixedRate (Runnable  command, long initialDelay, long period, TimeUnit  unit)
          ÁöÁ¤µÈ Ãʱâ Áö¿¬ ÈÄ¿¡ ÃÖÃÊ·Î À¯È¿ÇÏ°Ô µÇ¾î, ±× µÚ·Î´Â ÁöÁ¤µÈ ±â°£ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ÁÖ±âÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.
 ScheduledFuture <? > scheduleWithFixedDelay (Runnable  command, long initialDelay, long delay, TimeUnit  unit)
          ÁöÁ¤µÈ Ãʱâ Áö¿¬ ÈÄ¿¡ ÃÖÃÊ·Î À¯È¿ÇÏ°Ô µÇ¾î, ±× µÚ·Î´Â ½ÇÇà Á¾·á·ÎºÎÅÍ ´ÙÀ½ÀÇ ½ÇÇà °³½Ã±îÁöÀÇ ÁöÁ¤ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ÁÖ±âÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.
 void setContinueExistingPeriodicTasksAfterShutdownPolicy (boolean value)
          ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áֱ⠎ºÅ©ÀÇ ½ÇÇàÀ» °è¼ÓÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 void setExecuteExistingDelayedTasksAfterShutdownPolicy (boolean value)
          ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áö¿¬ ŽºÅ©¸¦ ½ÇÇàÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 void shutdown ()
          ¼ø¼­¿¡ µû¶ó ½ÇÇàµÇ´Â ¼Ë´Ù¿îÀ» °³½ÃÇÕ´Ï´Ù.
 List <Runnable > shutdownNow ()
          ½ÇÇàÁßÀÇ È°¼ºÈ­µÈ ŽºÅ© ¸ðµç Á¤Áö¸¦ ½ÃµµÇØ ´ë±âÁßÀÇ Å½ºÅ©ÀÇ Ã³¸®¸¦ Á¤ÁöÇØ, ½ÇÇàÀ» ´ë±âÇÏ°í ÀÖ´ø ŽºÅ©ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
<T> Future <T>
submit (Callable <T> task)
          °ªÀ» µ¹·ÁÁÖ´Â ½ÇÇà ŽºÅ©¸¦ ¼Û½ÅÇØ, º¸·ùÁßÀÇ Å½ºÅ© °á°ú¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 Future <? > submit (Runnable  task)
          ½ÇÇà¿ëÀÇ Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ±× ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.
<T> Future <T>
submit (Runnable  task, T result)
          ½ÇÇà¿ëÀÇ Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ¿Ï·á½Ã·Î ÁöÁ¤µÈ °á°ú¸¦ µ¹·ÁÁִ ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 
Ŭ·¡½º java.util.concurrent. ThreadPoolExecutor ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
afterExecute, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated
 
Ŭ·¡½º java.util.concurrent. AbstractExecutorService ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
invokeAll, invokeAll, invokeAny, invokeAny
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
ÀÎÅÍÆäÀ̽º java.util.concurrent. ExecutorService ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated
 

»ý¼ºÀÚ »ó¼¼

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize)
ÁöÁ¤ÇÑ ÄÚ¾î Ç® »çÀÌÁî·Î »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
corePoolSize - Ç®³» ·Î À¯ÁöÇÏ´Â threadÀÇ ¼ö (¾ÆÀ̵¹ »óÅÂÀÇ threadµµ Æ÷ÇÔÇÑ´Ù)
¿¹¿Ü:
IllegalArgumentException - corePoolSize°¡ Á¦·Î ¾Æ·¡ÀÇ °æ¿ì

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   ThreadFactory  threadFactory)
ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
corePoolSize - Ç®³» ·Î À¯ÁöÇÏ´Â threadÀÇ ¼ö (¾ÆÀ̵¹ »óÅÂÀÇ threadµµ Æ÷ÇÔÇÑ´Ù)
threadFactory - executor°¡ »õ·Î¿î thread¸¦ ÀÛ¼ºÇÒ ¶§¿¡ »ç¿ëÇÏ´Â ÆÑÅ丮
¿¹¿Ü:
NullPointerException - threadFactory°¡ nullÀÎ °æ¿ì

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   RejectedExecutionHandler  handler)
ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
corePoolSize - Ç®³» ·Î À¯ÁöÇÏ´Â threadÀÇ ¼ö (¾ÆÀ̵¹ »óÅÂÀÇ threadµµ Æ÷ÇÔÇÑ´Ù)
handler - thread°¡ Á¦ÇÑ¿¡ À̸£´ÂÁö, Å¥°¡ ¿ë·®¿¡ À̸£·¶±â ¶§¹®¿¡ ½ÇÇàÀÌ ºí·Ï µÇ¾úÀ» °æ¿ì¿¡ »ç¿ëÇÏ´Â Çڵ鷯
¿¹¿Ü:
NullPointerException - Çڵ鷯°¡ nullÀÎ °æ¿ì

ScheduledThreadPoolExecutor

public ScheduledThreadPoolExecutor(int corePoolSize,
                                   ThreadFactory  threadFactory,
                                   RejectedExecutionHandler  handler)
ÁöÁ¤µÈ Ãʱâ ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, »õ·Î¿î ScheduledThreadPoolExecutor¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
corePoolSize - Ç®³» ·Î À¯ÁöÇÏ´Â threadÀÇ ¼ö (¾ÆÀ̵¹ »óÅÂÀÇ threadµµ Æ÷ÇÔÇÑ´Ù)
threadFactory - executor°¡ »õ·Î¿î thread¸¦ ÀÛ¼ºÇÒ ¶§¿¡ »ç¿ëÇÏ´Â ÆÑÅ丮
handler - thread°¡ Á¦ÇÑ¿¡ À̸£´ÂÁö, Å¥°¡ ¿ë·®¿¡ À̸£·¶±â ¶§¹®¿¡ ½ÇÇàÀÌ ºí·Ï µÇ¾úÀ» °æ¿ì¿¡ »ç¿ëÇÏ´Â Çڵ鷯
¿¹¿Ü:
NullPointerException - threadFactory ¶Ç´Â Çڵ鷯°¡ nullÀÎ °æ¿ì
¸Þ¼­µåÀÇ »ó¼¼

remove

public boolean remove(Runnable  task)
Ŭ·¡½º ThreadPoolExecutor ±â¼ú:
ÀÌ Å½ºÅ©°¡ Á¸ÀçÇÏ´Â °æ¿ì, executor ³»ºÎ Å¥·ÎºÎÅÍ »èÁ¦ÇØ, ¾ÆÁ÷ ½ÃÀÛÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ½ÇÇàµÇÁö ¾Ê°Ô ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Ãë¼Ò schemaÀÇ ÀϺημ­ À¯È¿ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ³»ºÎ Å¥¿¡ ¹èÄ¡µÇ±â Àü¿¡ ´Ù¸¥ Çü½Ä¿¡ º¯È¯µÈ ŽºÅ©´Â »èÁ¦¿¡ ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, submit¸¦ »ç¿ëÇØ ÀÔ·ÂµÈ Å½ºÅ©´Â Future »óŸ¦ À¯ÁöÇÏ´Â Çü½Ä¿¡ º¯È¯µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¸, ÀÌ °æ¿ì´Â ThreadPoolExecutor.purge() ¸Þ¼­µå¸¦ »ç¿ëÇØ ÀÌ·¯ÇÑ »èÁ¦µÈ Future¸¦ »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ThreadPoolExecutor ³»ÀÇ remove
ÆĶó¹ÌÅÍ:
task - »èÁ¦Çϴ ŽºÅ©
¹Ýȯ°ª:
ŽºÅ©°¡ »èÁ¦µÇ¾úÀ» °æ¿ì´Â true

schedule

public ScheduledFuture <? > schedule(Runnable  command,
                                   long delay,
                                   TimeUnit  unit)
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ±â¼ú:
ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ´Ü¹ßÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ³»ÀÇ schedule
ÆĶó¹ÌÅÍ:
command - ½ÇÇàÇϴ ŽºÅ©
delay - ÇöÀçºÎÅÍÀÇ ½ÇÇà Áö¿¬ ½Ã°£
unit - Áö¿¬ ÆĶó¹ÌÅÍÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
º¸·ù »óÅÂÀÇ Å½ºÅ© ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼­µå´Â ¿Ï·á½Ã¿¡ nullÀ» µ¹·ÁÁØ´Ù

schedule

public <V> ScheduledFuture <V> schedule(Callable <V> callable,
                                       long delay,
                                       TimeUnit  unit)
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ±â¼ú:
ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ScheduledFuture¸¦ ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ³»ÀÇ schedule
ÆĶó¹ÌÅÍ:
callable - ½ÇÇàÇÏ´Â ÇÔ¼ö
delay - ÇöÀçºÎÅÍÀÇ ½ÇÇà Áö¿¬ ½Ã°£
unit - Áö¿¬ ÆĶó¹ÌÅÍÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
°á°úÀÇ ÃßÃ⠶Ǵ Ãë¼ÒÇØ¿¡ »ç¿ë °¡´ÉÇÑ ScheduledFuture

scheduleAtFixedRate

public ScheduledFuture <? > scheduleAtFixedRate(Runnable  command,
                                              long initialDelay,
                                              long period,
                                              TimeUnit  unit)
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ±â¼ú:
ÁöÁ¤µÈ Ãʱâ Áö¿¬ ÈÄ¿¡ ÃÖÃÊ·Î À¯È¿ÇÏ°Ô µÇ¾î, ±× µÚ·Î´Â ÁöÁ¤µÈ ±â°£ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ÁÖ±âÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù. Áï, initialDelay ÈÄ¿¡ ½ÇÇàÀÌ ½ÃÀ۵Ǿî initialDelay+period ÈÄ, initialDelay + 2 * period ÈÄ, ¶ó°í ÇÏ´Â »óÅ¿¡ ½ÇÇàµÇ¾î °©´Ï´Ù. ¸î°³ÀÇ Å½ºÅ© ½ÇÇàÀÌ ¿¹¿Ü¿¡ Á¶¿ìÇϸé, ÈļÓÀÇ ½ÇÇàÀº ¾ïÁ¦µË´Ï´Ù. ±× Àܷ̿ΠŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº executor°¡ »èÁ¦µÇ´ÂÁö Á¾·áÇÏ´Â °æ¿ì¸¸ÀÔ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ³»ÀÇ scheduleAtFixedRate
ÆĶó¹ÌÅÍ:
command - ½ÇÇàÇϴ ŽºÅ©
initialDelay - ÃÖÃÊÀÇ ½ÇÇàÀÇ Áö¿¬ ½Ã°£
period - ÈļÓÀÇ ½ÇÇà °£°Ý
unit - initialDelay ¹× period ÆĶó¹ÌÅÍÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼­µå´Â Ãë¼Ò½Ã¿¡ ¿¹¿Ü¸¦ Throw ÇÑ´Ù

scheduleWithFixedDelay

public ScheduledFuture <? > scheduleWithFixedDelay(Runnable  command,
                                                 long initialDelay,
                                                 long delay,
                                                 TimeUnit  unit)
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ±â¼ú:
ÁöÁ¤µÈ Ãʱâ Áö¿¬ ÈÄ¿¡ ÃÖÃÊ·Î À¯È¿ÇÏ°Ô µÇ¾î, ±× µÚ·Î´Â ½ÇÇà Á¾·á·ÎºÎÅÍ ´ÙÀ½ÀÇ ½ÇÇà °³½Ã±îÁöÀÇ ÁöÁ¤ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ÁÖ±âÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù. ¸î°³ÀÇ Å½ºÅ© ½ÇÇàÀÌ ¿¹¿Ü¿¡ Á¶¿ìÇϸé, ÈļÓÀÇ ½ÇÇàÀº ¾ïÁ¦µË´Ï´Ù. ±× Àܷ̿ΠŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº executor°¡ »èÁ¦µÇ´ÂÁö Á¾·áÇÏ´Â °æ¿ì¸¸ÀÔ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScheduledExecutorService ³»ÀÇ scheduleWithFixedDelay
ÆĶó¹ÌÅÍ:
command - ½ÇÇàÇϴ ŽºÅ©
initialDelay - ÃÖÃÊÀÇ ½ÇÇàÀÇ Áö¿¬ ½Ã°£
delay - ½ÇÇà Á¾·á·ÎºÎÅÍ ´ÙÀ½ÀÇ ½ÇÇà °³½Ã±îÁöÀÇ Áö¿¬
unit - initialDelay ¹× delay ÆĶó¹ÌÅÍÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼­µå´Â Ãë¼Ò½Ã¿¡ ¿¹¿Ü¸¦ Throw ÇÑ´Ù

execute

public void execute(Runnable  command)
Á¦·ÎÀÇ Áö¿¬ ¿ä±¸·Î Ä¿¸àµå¸¦ ½ÇÇàÇÕ´Ï´Ù. ÀÌ°ÍÀº, schedule(command, 0, anyUnit)¿Í °°Àº È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. shutdownNow¿¡ ÀÇÇØ ¸®ÅÏµÈ Å¥ ¹× ¸®½ºÆ®ÀÇ °Ë»ç¿¡¼­´Â command ÀÚü°¡ ¾Æ´Ï°í, Áö¿¬ Á¦·Î ScheduledFuture ¿¡ÀÇ ¾×¼¼½º¸¦ ÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º Executor ³»ÀÇ execute
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ThreadPoolExecutor ³»ÀÇ execute
ÆĶó¹ÌÅÍ:
command - ½ÇÇàÇϴ ŽºÅ©
¿¹¿Ü:
RejectedExecutionException - executor°¡ ¼Ë´Ù¿î Ç߱⠶§¹®¿¡ ŽºÅ©¸¦ ¹Þ¾Æµé¿© ½ÇÇàÇÒ ¼ö ¾ø´Â °æ¿ì, RejectedExecutionHandler ÆÇ´ÜÀ¸·Î Throw µÈ´Ù
NullPointerException - Ä¿¸àµå°¡ nullÀÎ °æ¿ì

submit

public Future <? > submit(Runnable  task)
ÀÎÅÍÆäÀ̽º ExecutorService ±â¼ú:
½ÇÇà¿ëÀÇ Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ±× ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ExecutorService ³»ÀÇ submit
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º AbstractExecutorService ³»ÀÇ submit
ÆĶó¹ÌÅÍ:
task - ¼Û½ÅÇϴ ŽºÅ©
¹Ýȯ°ª:
º¸·ù »óÅÂÀÇ Å½ºÅ© ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼­µå´Â ¿Ï·á½Ã¿¡ nullÀ» µ¹·ÁÁØ´Ù

submit

public <T> Future <T> submit(Runnable  task,
                            T result)
ÀÎÅÍÆäÀ̽º ExecutorService ±â¼ú:
½ÇÇà¿ëÀÇ Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ¿Ï·á½Ã·Î ÁöÁ¤µÈ °á°ú¸¦ µ¹·ÁÁִ ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ExecutorService ³»ÀÇ submit
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º AbstractExecutorService ³»ÀÇ submit
ÆĶó¹ÌÅÍ:
task - ¼Û½ÅÇϴ ŽºÅ©
result - µ¹·ÁÁÖ´Â °á°ú
¹Ýȯ°ª:
ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼­µå´Â ¿Ï·á½Ã·Î ÁöÁ¤µÈ °á°ú¸¦ µ¹·ÁÁØ´Ù

submit

public <T> Future <T> submit(Callable <T> task)
ÀÎÅÍÆäÀ̽º ExecutorService ±â¼ú:
°ªÀ» µ¹·ÁÁÖ´Â ½ÇÇà ŽºÅ©¸¦ ¼Û½ÅÇØ, º¸·ùÁßÀÇ Å½ºÅ© °á°ú¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ŽºÅ©ÀÇ ´ë±â¸¦ Áï½Ã ºí·Ï ÇÏ´Â °æ¿ì´Â result = exec.submit(aCallable). get(); Çü½Ä¿¡¼­ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÁÖ: Executors Ŭ·¡½º¿¡´Â Å©·ÎÀ𸦠´àÀº ´Ù¸¥ ÀÏ¹Ý °´Ã¼¸¦ º¯È¯ °¡´ÉÇÑ ¸Þ¼­µå ¼¼Æ® (¿¹¸¦ µé¾î, PrivilegedAction¸¦ ¼Û½Å °¡´ÉÇÑ Callable Çü½ÄÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù)°¡ Æ÷ÇԵ˴ϴÙ.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ExecutorService ³»ÀÇ submit
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º AbstractExecutorService ³»ÀÇ submit
ÆĶó¹ÌÅÍ:
task - ¼Û½ÅÇϴ ŽºÅ©
¹Ýȯ°ª:
ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future

setContinueExistingPeriodicTasksAfterShutdownPolicy

public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)
ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áֱ⠎ºÅ©ÀÇ ½ÇÇàÀ» °è¼ÓÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ °æ¿ì ŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº, shutdownNow ½ÇÇà½Ã, ¶Ç´Â ¼Ë´Ù¿îÀÌ ¿Ï·áÇÏ°í ÀÖ´Â °æ¿ì¿¡´Â Á¤Ã¥¸¦ false·Î ¼³Á¤ÇÑ µÚ »ÓÀÔ´Ï´Ù. ÀÌ °ªÀÇ µðÆúÆ®´Â false ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
value - trueÀÎ °æ¿ì¿¡´Â ¼Ë´Ù¿î ÈÄ¿¡ ¼ÓÇàÇÑ´Ù. falseÀÎ °æ¿ì´Â ¼ÓÇàÇÏÁö ¾Ê´Â
°ü·Ã Ç׸ñ:
getExecuteExistingDelayedTasksAfterShutdownPolicy()

getContinueExistingPeriodicTasksAfterShutdownPolicy

public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áֱ⠎ºÅ©ÀÇ ½ÇÇàÀ» °è¼ÓÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ÃëµæÇÕ´Ï´Ù. ÀÌ °æ¿ì ŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº, shutdownNow ½ÇÇà½Ã, ¶Ç´Â ¼Ë´Ù¿îÀÌ ¿Ï·áÇÏ°í ÀÖ´Â °æ¿ì¿¡´Â Á¤Ã¥¸¦ false·Î ¼³Á¤ÇÑ µÚ »ÓÀÔ´Ï´Ù. ÀÌ °ªÀÇ µðÆúÆ®´Â false ÀÔ´Ï´Ù.

¹Ýȯ°ª:
¼Ë´Ù¿î ÈÄ¿¡ ¼ÓÇàÇÏ´Â °æ¿ì´Â true
°ü·Ã Ç׸ñ:
setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)

setExecuteExistingDelayedTasksAfterShutdownPolicy

public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áö¿¬ ŽºÅ©¸¦ ½ÇÇàÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ °æ¿ì ŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº, shutdownNow ½ÇÇà½Ã, ¶Ç´Â ¼Ë´Ù¿îÀÌ ¿Ï·áÇÏ°í ÀÖ´Â °æ¿ì¿¡´Â Á¤Ã¥¸¦ false·Î ¼³Á¤ÇÑ µÚ »ÓÀÔ´Ï´Ù. ÀÌ °ªÀÇ µðÆúÆ®´Â false ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
value - trueÀÎ °æ¿ì¿¡´Â ¼Ë´Ù¿î ÈÄ¿¡ ½ÇÇàÇÕ´Ï´Ù. falseÀÎ °æ¿ì´Â ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù.
°ü·Ã Ç׸ñ:
getExecuteExistingDelayedTasksAfterShutdownPolicy()

getExecuteExistingDelayedTasksAfterShutdownPolicy

public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
ÀÌ executor ·Î shutdown°¡ ½ÇÇàµÇ¾úÀ» °æ¿ì¿¡¼­µµ ±âÁ¸ÀÇ Áö¿¬ ŽºÅ©¸¦ ½ÇÇàÇÒÁö ¾î¶³Áö¿¡ °üÇÑ Á¤Ã¥¸¦ ÃëµæÇÕ´Ï´Ù. ÀÌ °æ¿ì ŽºÅ©°¡ Á¾·áÇÏ´Â °ÍÀº, shutdownNow ½ÇÇà½Ã, ¶Ç´Â ¼Ë´Ù¿îÀÌ ¿Ï·áÇÏ°í ÀÖ´Â °æ¿ì¿¡´Â Á¤Ã¥¸¦ false·Î ¼³Á¤ÇÑ µÚ »ÓÀÔ´Ï´Ù. ÀÌ °ªÀÇ µðÆúÆ®´Â false ÀÔ´Ï´Ù.

¹Ýȯ°ª:
¼Ë´Ù¿î ÈÄ¿¡ ½ÇÇàÇÏ´Â °æ¿ì´Â true
°ü·Ã Ç׸ñ:
setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)

shutdown

public void shutdown()
¼ø¼­¿¡ µû¶ó ½ÇÇàµÇ´Â ¼Ë´Ù¿îÀ» °³½ÃÇÕ´Ï´Ù. ÀÌ °æ¿ì ÀÌÀü¿¡ ¼Û½ÅµÈ ŽºÅ©°¡ ½ÇÇàµÇ¾î »õ·Î¿î ŽºÅ©´Â ¹Þ¾Æµé¿©ÁöÁö ¾Ê½À´Ï´Ù. ExecuteExistingDelayedTasksAfterShutdownPolicy°¡ false·Î ¼³Á¤µÇ¸é, ±âÇÑÀ» ÃÊ°úÇÏ°í ÀÖÁö ¾Ê´Â ±âÁ¸ÀÇ Áö¿¬ ŽºÅ©°¡ »èÁ¦µË´Ï´Ù. ContinueExistingPeriodicTasksAfterShutdownPolicy°¡ true·Î ¼³Á¤µÇ¸é, ±âÁ¸ÀÇ Áֱ⠎ºÅ©ÀÇ Àå·¡ÀÇ ½ÇÇàÀÌ »èÁ¦µË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ExecutorService ³»ÀÇ shutdown
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ThreadPoolExecutor ³»ÀÇ shutdown

shutdownNow

public List <Runnable > shutdownNow()
½ÇÇàÁßÀÇ È°¼ºÈ­µÈ ŽºÅ© ¸ðµç Á¤Áö¸¦ ½ÃµµÇØ ´ë±âÁßÀÇ Å½ºÅ©ÀÇ Ã³¸®¸¦ Á¤ÁöÇØ, ½ÇÇàÀ» ´ë±âÇÏ°í ÀÖ´ø ŽºÅ©ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.

½ÇÇàÁßÀÇ È°¼ºÈ­µÈ ŽºÅ© 󸮸¦ Á¤ÁöÇϱâ À§Çؼ­ ÃÖ¼±ÀÇ ³ë·ÂÀ» ÇÏ´Â °Í ÀÌ»óÀÇ º¸ÁõÀº ¾ø½À´Ï´Ù. ÀÌ ±¸Çö¿¡¼­´Â Thread.interrupt()¸¦ °³ÀÔ½ÃÄÑ Å½ºÅ©°¡ »èÁ¦µÇ±â ¶§¹®¿¡ ŽºÅ©°¡ ÀÎÅÍ·´Æ®¿¡ ´ëÇÑ ÀÀ´äÀ» ¸¶½ºÅ© ÇÏ´ÂÁö ½ÇÆÐÇϸé, ŽºÅ©°¡ Á¾·áÇÏÁö ¾Ê°Ô µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ExecutorService ³»ÀÇ shutdownNow
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ThreadPoolExecutor ³»ÀÇ shutdownNow
¹Ýȯ°ª:
½ÇÇàÀÌ °áÄÚ °³½ÃµÇÁö ¾Ê´Â ŽºÅ©ÀÇ ¸®½ºÆ®. ÀÌ ¸®½ºÆ®ÀÇ °¢ ¿ä¼Ò´Â ScheduledFuture À̸ç, execute¸¦ »ç¿ëÇØ ¼Û½ÅµÇ´Â ŽºÅ©°¡ Æ÷ÇԵȴÙ. À̰͵éÀº Áö¿¬ Á¦·ÎÀÇ ScheduledFuture ±â¹ÝÀ¸·Î¼­ ½ºÄÉÁÙ¸µÀ¸·Î »ç¿ëµÈ´Ù

getQueue

public BlockingQueue <Runnable > getQueue()
ÀÌ executor°¡ »ç¿ëÇϴ ŽºÅ© Å¥¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ Å¥ÀÇ °¢ ¿ä¼Ò´Â ScheduledFuture À̸ç, execute¸¦ »ç¿ëÇØ ¼Û½ÅµÇ´Â ŽºÅ©°¡ Æ÷ÇԵ˴ϴÙ. À̰͵éÀº Áö¿¬ Á¦·ÎÀÇ ScheduledFuture ±â¹ÝÀ¸·Î¼­ ½ºÄÉÁÙ¸µÀ¸·Î »ç¿ëµË´Ï´Ù. ÀÌ Å¥·Î »ç¿ëµÇ´Â ¹Ýº¹ÀÚ°¡ ŽºÅ©ÀÇ ½ÇÇà¼ø¼­¿¡ ŽºÅ©¸¦ traversal ÇÏ´Â °ÍÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ThreadPoolExecutor ³»ÀÇ getQueue
¹Ýȯ°ª:
ŽºÅ© Å¥

JavaTM 2 Platform
Standard Ed. 5.0

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