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
- ÁöÁ¤µÈ ´ë±â ½Ã°£ÀÌ °æ°úÇßÀ» °æ¿ì
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ
ÂüÁ¶ÇϽʽÿÀ.