JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
ÀÎÅÍÆäÀ̽º Future<V>

ÇüÅ ÆĶó¹ÌÅÍ:
V - ÀÌ Future get ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °á°úÀÇ ÇüÅÂ
¾Ë·ÁÁø ¼­ºê ÀÎÅÍÆäÀ̽º ¸ñ·Ï :
ScheduledFuture <V>
¾Ë·ÁÁø ±¸Çö Ŭ·¡½º ¸ñ·Ï:
FutureTask

public interface Future<V>

Future´Â ºñµ¿±â °è»êÀÇ °á°ú¸¦ ³ªÅ¸³À´Ï´Ù. °è»êÀÌ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ üũÇØ, °è»êÀ» ´ë±âÇØ, °è»ê °á°ú¸¦ ÃëµæÇϱâ À§ÇÑ ¸Þ¼­µå°¡ Á¦°øµË´Ï´Ù. °á°ú´Â °è»êÀÇ ¿Ï·á½Ã¿¡ get ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡°Ô¸¸ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× ¶§, ÇÊ¿äÇϸé, Áغñ°¡ °®Ãß¾îÁú ¶§±îÁö ºí·ÏÀÌ ½ÇÇàµË´Ï´Ù. Ãë¼Ò´Â cancel ¸Þ¼­µå¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù. ŽºÅ©°¡ º¸Åë ÀÇ ¹æ¹ýÀ¸·Î ¿Ï·áÇß´ÂÁö, »èÁ¦µÇ¾ú´ÂÁö¸¦ ÆÇÁ¤Çϱâ À§ÇÑ Ãß°¡ ¸Þ¼­µå°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. °è»êÀÇ ¿Ï·á ÈÄ¿¡ °è»êÀ» Ãë¼ÒÇÒ ¼ö ¾ø½À´Ï´Ù. Ãë¼ÒÀÇ °¡´É¼ºÀ» ã±â À§Çؼ­ Future¸¦ »ç¿ëÇÏÁö¸¸, À¯¿ëÇÑ °á°ú¸¦ ¾òÀ» ¼ö ¾ø´Â °æ¿ì´Â Future<? > Çü½Ä¿¡¼­ ÇüŸ¦ ¼±¾ðÇØ, ±âº»À¸·Î µÇ´Â ŽºÅ©ÀÇ °á°ú·Î¼­ nullÀ» µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù.

»ç¿ë¿¹ (¾Æ·¡ÀÇ Å¬·¡½º´Â ¸ðµÎ °¡°øÀÇ Å¬·¡½º)


interface ArchiveSearcher { String search(String target); }
class App {
ExecutorService executor = ...
ArchiveSearcher searcher = ...
void showSearch(final String target) throws InterruptedException {
Future<String> future = executor.submit(new Callable<String>() {
public String call() { return searcher.search(target); }
});
displayOtherThings(); // do other things while searching
try {
displayText(future.get()); // use future
} catch (ExecutionException ex) { cleanup(); return; }
}
}
FutureTask Ŭ·¡½º´Â Runnable¸¦ ±¸ÇöÇÏ´Â Future ±¸ÇöÀ̱⠶§¹®¿¡ Executor¿¡ ÀÇÇØ ½ÇÇà °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, submit¸¦ »ç¿ëÇÏ´Â »ó±âÀÇ ±¸¼ºÀº ÀÌÇÏ·Î ¿Å°Ü³õÀ» ¼ö°¡ ÀÖ½À´Ï´Ù.

FutureTask<String> future =
new FutureTask<String>(new Callable<String>() {
public String call() {
return searcher.search(target);
}});
executor.execute(future);

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
FutureTask, Executor

¸Þ¼­µå °³¿ä
 boolean cancel (boolean mayInterruptIfRunning)
          ÀÌ Å½ºÅ©ÀÇ ½ÇÇàÀÇ Ãë¼Ò¸¦ ½ÃµµÇÕ´Ï´Ù.
 V get ()
          ÇÊ¿ä¿¡ µû¶ó¼­ °è»êÀÌ ¿Ï·áÇÒ ¶§±îÁö ´ë±âÇØ, ±× ÈÄ, °á°ú¸¦ ÃëµæÇÕ´Ï´Ù.
 V get (long timeout, TimeUnit  unit)
          ÇÊ¿ä¿¡ µû¶ó¼­, °è»êÀÌ ¿Ï·áÇÏ´Â °ÍÀ» ÁöÁ¤µÈ ½Ã°£±îÁö ´ë±âÇÕ´Ï´Ù.
 boolean isCancelled ()
          ÀÌ Å½ºÅ©°¡ º¸Åë ´ë·Î ¿Ï·áÇϱâ Àü¿¡ »èÁ¦µÇ¾úÀ» °æ¿ì´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 boolean isDone ()
          ÀÌ Å½ºÅ©°¡ ¿Ï·áÇßÀ» °æ¿ì´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 

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

cancel

boolean cancel(boolean mayInterruptIfRunning)
ÀÌ Å½ºÅ©ÀÇ ½ÇÇàÀÇ Ãë¼Ò¸¦ ½ÃµµÇÕ´Ï´Ù. ŽºÅ©°¡ ¿Ï·áÇÏ°í ÀÖ´ÂÁö, »èÁ¦µÇ°í ÀÖ´ÂÁö, ´Ù¸¥ ¾î¶°ÇÑ ÀÌÀ¯·Î½á Ãë¼ÒÇÒ ¼ö°¡ ¾ø´Â °æ¿ì, ÀÌ ½Ãµµ´Â ½ÇÆÐÇÕ´Ï´Ù. ½ÇÇàÀÇ Ãë¼Ò°¡ ¼º°øÇØ, cancel°¡ ºÒ·Á °¬À» ¶§¿¡ ÀÌ Å½ºÅ©°¡ ½ÃÀ۵Ǿî ÀÖÁö ¾ÊÀº °æ¿ì, ÀÌ Å½ºÅ©´Â °áÄÚ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. ŽºÅ©°¡ ÀÌ¹Ì ½ÃÀÛÇÏ°í ÀÖ´Â °æ¿ì, mayInterruptIfRunning ÆĶó¹ÌÅÍ´Â ÀÌ Å½ºÅ©¸¦ Á¤ÁöÇϱâ À§Çؼ­ ŽºÅ©¸¦ ½ÇÇàÁßÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆǺ°ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
mayInterruptIfRunning - ÀÌ Å½ºÅ©¸¦ ½ÇÇàÁßÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â ÁøÇàÁßÀÇ Å½ºÅ©°¡ ¿Ï·áÇÏ´Â °ÍÀÌ Çã°¡µÈ´Ù
¹Ýȯ°ª:
ŽºÅ©´Â ÀÌ¹Ì Á¤»óÀûÀ¸·Î ¿Ï·áÇÏ°í ÀÖ´Â µîÀÇ ÀÌÀ¯·Î½á ŽºÅ©¸¦ Ãë¼ÒÇÒ ¼ö°¡ ¾ø´Â °æ¿ì´Â false, ±×·¸Áö ¾ÊÀº °æ¿ì´Â true

isCancelled

boolean isCancelled()
ÀÌ Å½ºÅ©°¡ º¸Åë ´ë·Î ¿Ï·áÇϱâ Àü¿¡ »èÁ¦µÇ¾úÀ» °æ¿ì´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ŽºÅ©°¡ ¿Ï·áÇϱâ Àü¿¡ »èÁ¦µÇ¾úÀ» °æ¿ì´Â true

isDone

boolean isDone()
ÀÌ Å½ºÅ©°¡ ¿Ï·áÇßÀ» °æ¿ì´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¿Ï·áÀÇ ¿øÀο¡´Â Á¤»ó Á¾·á, ¿¹¿Ü, ¶Ç´Â Ãë¼Ò°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¾î´À °æ¿ì¿¡¼­µµ, ÀÌ ¸Þ¼­µå´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Å½ºÅ©°¡ ¿Ï·áÇßÀ» °æ¿ì´Â true

get

V  get()
      throws InterruptedException,

             ExecutionException 
ÇÊ¿ä¿¡ µû¶ó¼­ °è»êÀÌ ¿Ï·áÇÒ ¶§±îÁö ´ë±âÇØ, ±× ÈÄ, °á°ú¸¦ ÃëµæÇÕ´Ï´Ù.

¹Ýȯ°ª:
°è»ê °á°ú
¿¹¿Ü:
CancellationException - °è»êÀÌ »èÁ¦µÇ¾úÀ» °æ¿ì
ExecutionException - °è»ê¿¡ ÀÇÇØ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì
InterruptedException - ´ë±âÁß¿¡ ÇöÀçÀÇ thread·Î ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì

get

V  get(long timeout,
      TimeUnit  unit)
      throws InterruptedException,

             ExecutionException,

             TimeoutException 
ÇÊ¿ä¿¡ µû¶ó¼­, °è»êÀÌ ¿Ï·áÇÏ´Â °ÍÀ» ÁöÁ¤µÈ ½Ã°£±îÁö ´ë±âÇÕ´Ï´Ù. ±× ÈÄ, °¡´ÉÇÏ¸é °á°ú¸¦ ÃëµæÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
timeout - ´ë±âÇÏ´Â ÃÖÀå ½Ã°£
unit - timeout ÀμöÀÇ ½Ã°£ ´ÜÀ§
¹Ýȯ°ª:
°è»ê °á°ú
¿¹¿Ü:
CancellationException - °è»êÀÌ »èÁ¦µÇ¾úÀ» °æ¿ì
ExecutionException - °è»ê¿¡ ÀÇÇØ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì
InterruptedException - ´ë±âÁß¿¡ ÇöÀçÀÇ thread·Î ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì
TimeoutException - ÁöÁ¤µÈ ´ë±â ½Ã°£ÀÌ °æ°úÇßÀ» °æ¿ì

JavaTM 2 Platform
Standard Ed. 5.0

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