JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
ÀÎÅÍÆäÀ̽º ScheduledExecutorService

¸ðµç ½´ÆÛ ÀÎÅÍÆäÀ̽º:
Executor, ExecutorService
¾Ë·ÁÁø ±¸Çö Ŭ·¡½º ¸ñ·Ï:
ScheduledThreadPoolExecutor

public interface ScheduledExecutorService
extends ExecutorService

ÁöÁ¤µÈ Áö¿¬ ½Ã°£ ÈÄ, ¶Ç´Â ÁÖ±âÀûÀ¸·Î Ä¿¸àµåÀÇ ½ÇÇàÀ» ½ºÄÉÁÙ °¡´ÉÇÑ ExecutorService .

schedule ¸Þ¼­µå´Â ´Ù¾çÇÑ Áö¿¬À» °¡Áö´Â ŽºÅ©¸¦ ÀÛ¼ºÇØ, ½ÇÇàÀÇ Ãë¼Ò³ª üũ¿¡ »ç¿ë °¡´ÉÇÑ Å½ºÅ© °´Ã¼¸¦ ¸®ÅÏÇÕ´Ï´Ù. scheduleAtFixedRate ¹× scheduleWithFixedDelay ¸Þ¼­µå´Â »èÁ¦µÉ ¶§±îÁö ÁÖ±âÀûÀ¸·Î ½ÇÇàµÇ´Â ŽºÅ©¸¦ ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.

Executor.execute(java.lang.Runnable) ¹× ExecutorService submit ¸Þ¼­µå¸¦ »ç¿ëÇØ ¼Û½ÅµÇ´Â Ä¿¸àµå´Â ¿ä±¸µÈ Áö¿¬ Á¦·Î·Î ½ºÄÉÁÙ¸µ µË´Ï´Ù. °ªÀÌ Á¦·Î ¹× ºÎÀÇ Áö¿¬ (ÇǸ®¾îµå´Â ¾øÀ½)µµ schedule ¸Þ¼­µå·Î Çã°¡ ¹× 󸮵Ǿî Áï½Ã ½ÇÇàµË´Ï´Ù.

¸ðµç schedule ¸Þ¼­µå´Â Àμö·Î¼­ Àý´ë ½Ã°£À̳ª ³¯Â¥¿Í ½Ã°£°¡ ¾Æ´Ï°í ¡¸»ó´ëÀûÀΡ¹Áö¿¬ ¹× ±â°£À» ¹Þ¾ÆµéÀÔ´Ï´Ù. Date ·Î ³ªÅ¸³»Áö´Â Àý´ë ½Ã°£ÀÌ ¿ä±¸µÈ Çü½ÄÀ¸·Î º¯È¯ÇÏ´Â °ÍÀº °£´ÜÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Àå·¡ÀÇ Æ¯Á¤ÀÇ date¿¡ ½ºÄÉÁÙÀ» ¼³Á¤ÇÏ´Â °æ¿ì´Â schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, »ó´ë Áö¿¬ÀÇ À¯È¿±â°£ÀÌ ÇöÀçÀÇ Date (ÀÌ ½ÃÁ¡¿¡¼­ ³×Æ®¿öÅ© ½Ã°¢ µ¿±â ÇÁ·ÎÅäÄÝ, Ŭ¶ô ¾î±ß³ª ¶Ç´Â ´Ù¸¥ ¿äÀÎÀ» À§Çؼ­ ŽºÅ©°¡ À¯È¿ÇÏ°Ô µÈ´Ù)¿¡ ÀÏÄ¡ÇÒ ÇÊ¿ä´Â ¾ø´Â °Í¿¡ À¯ÀÇÇØ ÁÖ¼¼¿ä. Executors Ŭ·¡½º´Â ÀÌ ÆÐÅ°Áö·Î Á¦°øµÇ´Â ScheduledExecutorService ±¸Çö¿ëÀÇ Æí¸®¼ºÀÇ ³ôÀº ÆÑÅ丮 ¸Þ¼­µå¸¦ Á¦°øÇÕ´Ï´Ù.

»ç¿ë¿¹

´ÙÀ½¿¡ ³ªÅ¸³»´Â Ŭ·¡½º¿¡´Â 1 ½Ã°£ beepÀ½À» 10 ÃÊ ¸¶´Ù ¿ï¸®µµ·Ï ScheduledExecutorService¸¦ ¼³Á¤ÇÏ´Â ¸Þ¼­µå°¡ Æ÷ÇԵ˴ϴÙ.

 import static java.util.concurrent.TimeUnit. *;
 class BeeperControl {
    private final ScheduledExecutorService scheduler = 
       Executors.newScheduledThreadPool(1);

    public void beepForAnHour() {
        final Runnable beeper = new Runnable() {
                public void run() { System.out.println("beep"); }
            };
        final ScheduledFuture<? > beeperHandle = 
            scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
        scheduler.schedule(new Runnable() {
                public void run() { beeperHandle.cancel(true); }
            }, 60 * 60, SECONDS);
    }
 }
 

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

¸Þ¼­µå °³¿ä
<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)
          ÁöÁ¤µÈ Ãʱâ Áö¿¬ ÈÄ¿¡ ÃÖÃÊ·Î À¯È¿ÇÏ°Ô µÇ¾î, ±× µÚ·Î´Â ½ÇÇà Á¾·á·ÎºÎÅÍ ´ÙÀ½ÀÇ ½ÇÇà °³½Ã±îÁöÀÇ ÁöÁ¤ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ÁÖ±âÀûÀÎ ¾×¼ÇÀ» ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.
 
ÀÎÅÍÆäÀ̽º java.util.concurrent. ExecutorService ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit
 
ÀÎÅÍÆäÀ̽º java.util.concurrent. Executor ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
execute
 

¸Þ¼­µåÀÇ »ó¼¼

schedule

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

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

schedule

<V> ScheduledFuture <V> schedule(Callable <V> callable,
                                long delay,
                                TimeUnit  unit)
ÁöÁ¤µÈ Áö¿¬ ÈÄ¿¡ À¯È¿ÇÏ°Ô µÇ´Â ScheduledFuture¸¦ ÀÛ¼º ¹× ½ÇÇàÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
callable - ½ÇÇàÇÏ´Â ÇÔ¼ö
delay - ÇöÀçºÎÅÍÀÇ ½ÇÇà Áö¿¬ ½Ã°£
unit - Áö¿¬ ÆĶó¹ÌÅÍÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
°á°úÀÇ ÃßÃ⠶Ǵ Ãë¼ÒÇØ¿¡ »ç¿ë °¡´ÉÇÑ ScheduledFuture
¿¹¿Ü:
RejectedExecutionException - ŽºÅ©ÀÇ ½ÇÇàÀ» ½ºÄÉÁÙ ÇÒ ¼ö ¾ø´Â °æ¿ì
NullPointerException - callable°¡ nullÀÎ °æ¿ì

scheduleAtFixedRate

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

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

scheduleWithFixedDelay

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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