java.util.concurrent
Ŭ·¡½º ExecutorCompletionService<V>
java.lang.Object
java.util.concurrent.ExecutorCompletionService<V>
- ¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
- CompletionService <V>
public class ExecutorCompletionService<V>
- extends Object
- implements CompletionService <V>
ŽºÅ©ÀÇ ½ÇÇàÀ¸·Î ÁöÁ¤µÈ Executor
¸¦
»ç¿ëÇÏ´Â CompletionService
. ÀÌ Å¬·¡½º´Â ¼Û½ÅµÈ ŽºÅ©°¡ ¿Ï·á½Ã¿¡ take¸¦ »ç¿ëÇØ ¾×¼¼½º °¡´ÉÇÑ Å¥¿¡ ¹èÄ¡µÇµµ·Ï ÁغñÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â °æ·®À̱⠶§¹®¿¡
ŽºÅ© ±×·ìÀ» ó¸®ÇÒ ¶§¿¡ ÀϽûç¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ë¿¹
°¢°¢ÀÌ ¾î¶°ÇÑ Result ÇüÀÇ °ªÀ» µ¹·ÁÁִ ƯÁ¤ÀÇ ¹®Á¦¿¡ ´ëÀÀÇÑ ¼Ò¸£¹Ù¼ÂÆ®¸¦ º¸°ü À¯ÁöÇϰí ÀÖ¾î, À̰͵éÀ» µ¿½Ã¿¡ ½ÇÇàÇØ, null ÀÌ¿ÜÀÇ °ªÀ» µ¹·ÁÁÖ´Â °á°ú¸¦ °¢°¢ use(Result r) ¸Þ¼µå·Î ó¸®ÇÏ´Â °æ¿ì¸¦ »ý°¢ÇսôÙ. ´ÙÀ½°ú °°ÀÌ ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù
.
void solve(Executor e, Collection<Callable<Result>> solvers)
throws InterruptedException, ExecutionException {
CompletionService<Result> ecs = new ExecutorCompletionService<Result>(e);
for (Callable<Result> s : solvers)
ecs.submit(s);
int n = solvers.size();
for (int i = 0; i < n; ++i) {
Result r = ecs.take(). get();
if (r ! = null)
use(r);
}
}
À̹øÀº ¿¹¿Ü°¡ ¹ß»ýÇÑ °á°ú¸¦ Á¦¿ÜÇÑ, task setÀÇ ÃÖÃÊÀÇ null ÀÌ¿ÜÀÇ °á°ú¸¦ »ç¿ëÇÏ´Â °æ¿ì¸¦ »ý°¢ÇսôÙ. À¯È¿ÇÑ ÃÖÃÊÀÇ °á°ú¸¦ ÃëµæÇÒ ¼ö ÀÖÀ¸¸é, ´Ù¸¥ ŽºÅ©´Â ¸ðµÎ Ãë¼ÒÇÕ´Ï´Ù.
void solve(Executor e, Collection<Callable<Result>> solvers)
throws InterruptedException {
CompletionService<Result> ecs = new ExecutorCompletionService<Result>(e);
int n = solvers.size();
List<Future<Result>> futures = new ArrayList<Future<Result>>(n);
Result result = null;
try {
for (Callable<Result> s : solvers)
futures.add(ecs.submit(s));
for (int i = 0; i < n; ++i) {
try {
Result r = ecs.take(). get();
if (r ! = null) {
result = r;
break;
}
} catch(ExecutionException ignore) {}
}
}
finally {
for (Future<Result> f : futures)
f.cancel(true);
}
if (result ! = null)
use(result);
}
¸Þ¼µå °³¿ä |
Future <V > |
poll ()
´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. |
Future <V > |
poll (long timeout,
TimeUnit unit)
´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. |
Future <V > |
submit (Callable <V > task)
°ªÀ» µ¹·ÁÁÖ´Â ½ÇÇà¿ë ŽºÅ©¸¦ ¼Û½ÅÇØ, º¸·ù »óÅÂÀÇ Å½ºÅ© °á°ú¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Future <V > |
submit (Runnable task,
V result)
½ÇÇàÇÏ´Â Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ±× ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Future <V > |
take ()
´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
ExecutorCompletionService
public ExecutorCompletionService(Executor executor)
- ±âº» ŽºÅ©ÀÇ ½ÇÇà¿ëÀ¸·Î ÁöÁ¤µÈ executor¸¦ »ç¿ëÇØ, ¿Ï·á Å¥¿¡
LinkedBlockingQueue
¸¦
»ç¿ëÇØ, ExecutorCompletionService¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
- ÆÄ¶ó¹ÌÅÍ:
executor
- »ç¿ëÇÏ´Â executor
- ¿¹¿Ü:
NullPointerException
- executor°¡ nullÀÎ °æ¿ì
ExecutorCompletionService
public ExecutorCompletionService(Executor executor,
BlockingQueue <Future <V >> completionQueue)
- ±âº» ŽºÅ©ÀÇ ½ÇÇà¿ëÀ¸·Î ÁöÁ¤µÈ executor¸¦ »ç¿ëÇØ, ¿Ï·á Å¥·Î ÁöÁ¤µÈ Å¥¸¦ »ç¿ëÇØ, ExecutorCompletionService¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
- ÆÄ¶ó¹ÌÅÍ:
executor
- »ç¿ëÇÏ´Â executorcompletionQueue
- º¸Åë, ÀÌ ¼ºñ½º Àü¿ëÀÇ ¿Ï·á Å¥·Î¼ »ç¿ëÇϴ ť
- ¿¹¿Ü:
NullPointerException
- executor ¶Ç´Â completionQueue°¡ nullÀÎ °æ¿ì
submit
public Future <V > submit(Callable <V > task)
- ÀÎÅÍÆäÀ̽º
CompletionService
񃬣:
- °ªÀ» µ¹·ÁÁÖ´Â ½ÇÇà¿ë ŽºÅ©¸¦ ¼Û½ÅÇØ, º¸·ù »óÅÂÀÇ Å½ºÅ© °á°ú¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¿Ï·á½Ã¿¡
ÀÌ Å½ºÅ©¸¦ ²¨³¾±î Æú¸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- Á¤ÀÇ:
- ÀÎÅÍÆäÀ̽º
CompletionService <V >
³»ÀÇ submit
- ÆÄ¶ó¹ÌÅÍ:
task
- ¼Û½ÅÇϴ ŽºÅ©
- ¹Ýȯ°ª:
- ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future
submit
public Future <V > submit(Runnable task,
V result)
- ÀÎÅÍÆäÀ̽º
CompletionService
񃬣:
- ½ÇÇàÇÏ´Â Runnable ŽºÅ©¸¦ ¼Û½ÅÇØ, ±× ŽºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¿Ï·á½Ã¿¡
ÀÌ Å½ºÅ©¸¦ ²¨³¾±î Æú¸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- Á¤ÀÇ:
- ÀÎÅÍÆäÀ̽º
CompletionService <V >
³»ÀÇ submit
- ÆÄ¶ó¹ÌÅÍ:
task
- ¼Û½ÅÇϴ ŽºÅ©result
- Á¤»óÀûÀ¸·Î ¿Ï·áÇßÀ» °æ¿ì¿¡ µ¹·ÁÁÖ´Â °á°ú
- ¹Ýȯ°ª:
- ŽºÅ©ÀÇ º¸·ù ¿Ï·á¸¦ ³ªÅ¸³»´Â Future. ±× get() ¸Þ¼µå´Â ¿Ï·á½Ã·Î ÁöÁ¤µÈ °á°úÄ¡¸¦ µ¹·ÁÁØ´Ù
take
public Future <V > take()
throws InterruptedException
- ÀÎÅÍÆäÀ̽º
CompletionService
񃬣:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. ¾Æ¹«°Íµµ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ´ë±âÇÕ´Ï´Ù.
- Á¤ÀÇ:
- ÀÎÅÍÆäÀ̽º
CompletionService <V >
³»ÀÇ take
- ¹Ýȯ°ª:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future
- ¿¹¿Ü:
InterruptedException
- ´ë±âÁß¿¡ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì
poll
public Future <V > poll()
- ÀÎÅÍÆäÀ̽º
CompletionService
񃬣:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. ¾Æ¹«°Íµµ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â nullÀ»
¸®ÅÏÇÕ´Ï´Ù.
- Á¤ÀÇ:
- ÀÎÅÍÆäÀ̽º
CompletionService <V >
³»ÀÇ poll
- ¹Ýȯ°ª:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future. ¾Æ¹«°Íµµ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â null
poll
public Future <V > poll(long timeout,
TimeUnit unit)
throws InterruptedException
- ÀÎÅÍÆäÀ̽º
CompletionService
񃬣:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future¸¦ Ãëµæ ¹× »èÁ¦ÇÕ´Ï´Ù. ¾Æ¹«°Íµµ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, Çʿ信 µû¶ó¼ ÁöÁ¤µÈ ´ë±â ½Ã°£±îÁö ´ë±âÇÕ´Ï´Ù.
- Á¤ÀÇ:
- ÀÎÅÍÆäÀ̽º
CompletionService <V >
³»ÀÇ poll
- ÆÄ¶ó¹ÌÅÍ:
timeout
- 󸮸¦ ÁßÁöÇÒ ¶§±îÁöÀÇ ´ë±â ½Ã°£. ´ÜÀ§´Â unitunit
- timeout ÆÄ¶ó¹ÌÅÍÀÇ ÇØ¼® ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â TimeUnit
- ¹Ýȯ°ª:
- ´ÙÀ½ÀÇ ¿Ï·áÇÊ Å½ºÅ©¸¦ ³ªÅ¸³»´Â Future. ÁöÁ¤µÈ ´ë±â ½Ã°£ÀÌ °æ°úÇØµµ ¾Æ¹«°Íµµ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â null
- ¿¹¿Ü:
InterruptedException
- ´ë±âÁß¿¡ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ
ÂüÁ¶ÇϽʽÿÀ.