public abstract class Async<V,E extends java.lang.Throwable>
extends co.paralleluniverse.fibers.FiberAsync<V,E>
기존에 스레드 기반으로 작성된 블러킹 혹은 논블러킹 호출을 파이버기반으로 비동기 처리할 수 있는 기능을 제공한다
Constructor and Description |
---|
Async() |
Modifier and Type | Method and Description |
---|---|
static <V> V |
awaitFuture(java.util.concurrent.CompletableFuture<V> completableFuture)
CompletableFuture 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> V |
awaitFuture(java.util.concurrent.CompletableFuture<V> completableFuture,
int timeout,
java.util.concurrent.TimeUnit unit)
CompletableFuture 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다 |
static <V> V |
awaitFuture(java.util.concurrent.CompletionStage<V> completableFuture)
CompletionStage 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> V |
awaitFuture(java.util.concurrent.CompletionStage<V> completableFuture,
int timeout,
java.util.concurrent.TimeUnit unit)
CompletionStage 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> V |
awaitFuture(com.google.common.util.concurrent.ListenableFuture<V> listenableFuture)
ListenableFuture 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> V |
awaitFuture(com.google.common.util.concurrent.ListenableFuture<V> listenableFuture,
int timeout,
java.util.concurrent.TimeUnit unit)
ListenableFuture 에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다 |
static <V> java.util.concurrent.Future<V> |
call(AsyncOp<V> AsyncOp)
아래의
AsyncOp 을 사용한 방식은 콜백 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp 는 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> java.util.concurrent.Future<V> |
call(long nodeId,
co.paralleluniverse.strands.SuspendableCallable<V> suspendableCallable)
지정한 NonNetworkNode 스레드에서 새로운 파이버를 생성하여 해당 작업을 수행한다
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임하고 싶을 때 사용한다
|
static <V> V |
call(long nodeId,
co.paralleluniverse.strands.SuspendableCallable<V> suspendableCallable,
long timeout,
java.util.concurrent.TimeUnit unit)
지정한 NonNetworkNode 스레드에서 새로운 파이버를 생성하여 해당 작업을 수행한다
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임한 후 반환값에 대해 대기한다
|
static <V> V |
callAndWait(AsyncOp<V> AsyncOp)
아래의
AsyncOp 을 사용한 방식은 콜백 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다 |
static <V> V |
callAndWait(AsyncOp<V> AsyncOp,
long timeout,
java.util.concurrent.TimeUnit unit)
아래의
AsyncOp 을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다 |
static <V> java.util.List<V> |
callBlocking(BaseObject baseObject,
java.util.concurrent.ExecutorService executor,
java.util.List<Callable<V>> callableList)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static <V> java.util.List<V> |
callBlocking(BaseObject baseObject,
java.util.concurrent.ExecutorService executor,
java.util.List<Callable<V>> callableList,
long timeout,
java.util.concurrent.TimeUnit unit)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static <V> java.util.List<V> |
callBlocking(BaseObject baseObject,
java.lang.String executorId,
java.util.List<Callable<V>> callableList)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static <V> java.util.List<V> |
callBlocking(BaseObject baseObject,
java.lang.String executorId,
java.util.List<Callable<V>> callableList,
long timeout,
java.util.concurrent.TimeUnit unit)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출들이 완료될 때까지 타임아웃 시간만큼 대기
|
static <V> V |
callBlocking(java.util.concurrent.ExecutorService executor,
Callable<V> callable)
스레드 블러킹 호출을 외부 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static <V> V |
callBlocking(java.util.concurrent.ExecutorService executor,
Callable<V> callable,
long timeout,
java.util.concurrent.TimeUnit unit)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
|
static <V> V |
callBlocking(java.lang.String executorId,
Callable<V> callable)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static <V> V |
callBlocking(java.lang.String executorId,
Callable<V> callable,
long timeout,
java.util.concurrent.TimeUnit unit)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
|
static void |
exec(java.util.concurrent.ExecutorService executor,
java.lang.Runnable task)
지정한
ExecutorService 로 task 를 넘긴다
이 때, task 처리 완료 여부에 따른 더 이상의 코드 흐름은 만들 수 없다 |
static void |
exec(java.lang.String executorId,
java.lang.Runnable task)
미리 생성해둔 Executor 에 Runnable 을 넘긴다.
|
static java.util.concurrent.Future<java.lang.Object> |
run(AsyncOp<java.lang.Object> AsyncOp)
아래의
AsyncOp 을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
run()은 별도의 반환값을 갖지 않으므로 비동기 처리의 종료 시점을 기다릴 필요가 없다면 run() 호출 후에 future 를 무시하고 다른 작업을 진행해도 된다 |
static java.util.concurrent.Future<java.lang.Object> |
run(long nodeId,
co.paralleluniverse.strands.SuspendableRunnable suspendableRunnable)
지정한 NonNetworkNode 스레드에서 새로운 파이버를 생성하여 해당 작업을 수행한다
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임하고 싶을 때 사용한다
run()은 별도의 반환값을 갖지 않으므로 비동기 처리의 종료 시점을 기다릴 필요가 없다면 run() 호출 후에 future 를 무시하고 다른 작업을 진행해도 된다
|
static void |
runAndWait(AsyncOp<java.lang.Object> AsyncOp)
아래의
AsyncOp 을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용 |
static void |
runAndWait(AsyncOp<java.lang.Object> AsyncOp,
long timeout,
java.util.concurrent.TimeUnit unit)
아래의
AsyncOp 을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용 |
static void |
runAndWait(long nodeId,
co.paralleluniverse.strands.SuspendableRunnable suspendableRunnable,
long timeout,
java.util.concurrent.TimeUnit unit)
지정한 NonNetworkNode 스레드에서 새로운 파이버를 생성하여 해당 작업을 수행한다
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임한 후 반환값에 대해 대기한다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용하도록 한다
|
static void |
runBlocking(BaseObject baseObject,
java.util.concurrent.ExecutorService executor,
java.util.List<java.lang.Runnable> runnableList)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static void |
runBlocking(BaseObject baseObject,
java.util.concurrent.ExecutorService executor,
java.util.List<java.lang.Runnable> runnableList,
long timeout,
java.util.concurrent.TimeUnit unit)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출들이 완료될 때까지 타임아웃 시간만큼 대기
|
static void |
runBlocking(BaseObject baseObject,
java.lang.String executorId,
java.util.List<java.lang.Runnable> runnableList)
여러개의 스레드 블러킹 호출들을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static void |
runBlocking(java.util.concurrent.ExecutorService executor,
java.lang.Runnable runnable)
스레드 블러킹 호출을 외부 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 Config 에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static void |
runBlocking(java.util.concurrent.ExecutorService executor,
java.lang.Runnable runnable,
long timeout,
java.util.concurrent.TimeUnit unit)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
|
static void |
runBlocking(java.lang.String executorId,
java.lang.Runnable runnable)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
|
static void |
runBlocking(java.lang.String executorId,
java.lang.Runnable runnable,
long timeout,
java.util.concurrent.TimeUnit unit)
스레드 블러킹 호출을 미리 생성해둔 Executor를 이용해서 처리한다
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
|
@Suspendable public static <V> V callBlocking(java.lang.String executorId, Callable<V> callable) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- Callable
을 구현한 형태executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디callable
- 블러킹 호출을 감싼 Callable
Callable
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V callBlocking(java.lang.String executorId, Callable<V> callable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
V
- Callable
을 구현한 형태executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디callable
- 블러킹 호출을 감싼 Callable
timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
Callable
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V callBlocking(java.util.concurrent.ExecutorService executor, Callable<V> callable) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- Callable
을 구현한 형태executor
- 블러킹 호출을 처리할 ExecutorService
callable
- 블러킹 호출을 감싼 Callable
Callable
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V callBlocking(java.util.concurrent.ExecutorService executor, Callable<V> callable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
V
- Callable
을 구현한 형태executor
- 블러킹 호출을 처리할 ExecutorService
callable
- 블러킹 호출을 감싼 Callable
timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
Callable
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> java.util.List<V> callBlocking(BaseObject baseObject, java.lang.String executorId, java.util.List<Callable<V>> callableList, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출들이 완료될 때까지 타임아웃 시간만큼 대기
V
- Callable
을 구현한 형태baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디callableList
- 여러개의 블러킹 호출들을 감싼 Callable
객체들의 리스트timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
Callable
리스트의 결과 리스트 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> java.util.List<V> callBlocking(BaseObject baseObject, java.lang.String executorId, java.util.List<Callable<V>> callableList) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- Callable
을 구현한 형태baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디callableList
- 여러개의 블러킹 호출들을 감싼 Callable
객체들의 리스트Callable
리스트의 결과 리스트 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> java.util.List<V> callBlocking(BaseObject baseObject, java.util.concurrent.ExecutorService executor, java.util.List<Callable<V>> callableList) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- Callable
을 구현한 형태baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executor
- 블러킹 호출을 처리할 ExecutorService
callableList
- 여러개의 블러킹 호출들을 감싼 Callable
객체들의 리스트Callable
리스트의 결과 리스트 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> java.util.List<V> callBlocking(BaseObject baseObject, java.util.concurrent.ExecutorService executor, java.util.List<Callable<V>> callableList, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- Callable
을 구현한 형태baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executor
- 블러킹 호출을 처리할 ExecutorService
callableList
- 여러개의 블러킹 호출들을 감싼 Callable
객체들의 리스트timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값을 설정unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
Callable
리스트의 결과 리스트 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(java.lang.String executorId, java.lang.Runnable runnable) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디runnable
- 블러킹 호출을 감싼 Runnable
객체co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(java.lang.String executorId, java.lang.Runnable runnable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디runnable
- 블러킹 호출을 감싼 Runnable
timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값을 설정unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(java.util.concurrent.ExecutorService executor, java.lang.Runnable runnable) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 Config 에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
executor
- 블러킹 호출을 처리할 ExecutorService
runnable
- 블러킹 호출을 감싼 Runnable
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(java.util.concurrent.ExecutorService executor, java.lang.Runnable runnable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 타임아웃 시간만큼 대기
executor
- 블러킹 호출을 처리할 ExecutorService
runnable
- 블러킹 호출을 감싼 Runnable
timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(BaseObject baseObject, java.lang.String executorId, java.util.List<java.lang.Runnable> runnableList) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디runnableList
- 여러개의 블러킹 호출들을 감싼 Runnable
객체들co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(BaseObject baseObject, java.util.concurrent.ExecutorService executor, java.util.List<java.lang.Runnable> runnableList) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executor
- 블러킹 호출을 처리할 ExecutorService
runnableList
- 여러개의 블러킹 호출들을 감싼 Runnable
객체들의 리스트co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runBlocking(BaseObject baseObject, java.util.concurrent.ExecutorService executor, java.util.List<java.lang.Runnable> runnableList, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution
이 블러킹 호출들이 완료될 때까지 호출한 파이버는 Suspend 된다
이 때, 해당 블러킹 호출들이 완료될 때까지 타임아웃 시간만큼 대기
baseObject
- 호출하는 Base 객체 (BaseGameNode, BaseSupportNode, BaseSession, BaseConnection, BaseUser, BaseRoom, Spot)executor
- 블러킹 호출을 처리할 ExecutorService
runnableList
- 여러개의 블러킹 호출들을 감싼 Runnable
객체들의 리스트timeout
- 블러킹 호출에 대한 결과를 얼마동안 대기할지 타임아웃값을 설정unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미@Suspendable public static <V> V awaitFuture(java.util.concurrent.CompletionStage<V> completableFuture) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
CompletionStage
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- CompletionStage
를 구현한 형태completableFuture
- 대기할 CompletionStage
CompletionStage
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V awaitFuture(java.util.concurrent.CompletionStage<V> completableFuture, int timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
CompletionStage
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- CompletionStage
를 구현한 형태completableFuture
- 대기할 CompletionStage
timeout
- get() 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
CompletionStage
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V awaitFuture(java.util.concurrent.CompletableFuture<V> completableFuture) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
CompletableFuture
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- CompletableFuture
를 구현한 형태completableFuture
- 대기할 CompletableFuture
CompletableFuture
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V awaitFuture(java.util.concurrent.CompletableFuture<V> completableFuture, int timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
CompletableFuture
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
V
- CompletableFuture
를 구현한 형태completableFuture
- 대기할 CompletableFuture
timeout
- get() 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
CompletableFuture
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V awaitFuture(com.google.common.util.concurrent.ListenableFuture<V> listenableFuture) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
ListenableFuture
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- ListenableFuture
를 구현한 형태listenableFuture
- 대기할 ListenableFuture
ListenableFuture
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V awaitFuture(com.google.common.util.concurrent.ListenableFuture<V> listenableFuture, int timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
ListenableFuture
에 대한 .get() 을 스레드 블러킹 대신 파이버 블러킹으로 전환된다
그러므로 해당 future 에 대한 .get() 은 반드시 이 메서드를 통해 처리해야 한다
V
- ListenableFuture
를 구현한 형태listenableFuture
- 대기할 ListenableFuture
timeout
- get() 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
ListenableFuture
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생public static <V> java.util.concurrent.Future<V> call(AsyncOp<V> AsyncOp)
AsyncOp
을 사용한 방식은 콜백 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp 는 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- AsyncOp
를 구현한 형태AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다Future
반환@Suspendable public static <V> V callAndWait(AsyncOp<V> AsyncOp) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
AsyncOp
을 사용한 방식은 콜백 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
V
- AsyncOp
를 구현한 형태AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다AsyncOp
비동기 처리에 대한 결과값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static <V> V callAndWait(AsyncOp<V> AsyncOp, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
AsyncOp
을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
V
- AsyncOp
를 구현한 형태AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다timeout
- get() 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
AsyncOp
비동기 처리에 대한 결과값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생public static java.util.concurrent.Future<java.lang.Object> run(AsyncOp<java.lang.Object> AsyncOp)
AsyncOp
을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
run()은 별도의 반환값을 갖지 않으므로 비동기 처리의 종료 시점을 기다릴 필요가 없다면 run() 호출 후에 future 를 무시하고 다른 작업을 진행해도 된다
AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다Future
반환@Suspendable public static void runAndWait(AsyncOp<java.lang.Object> AsyncOp) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
AsyncOp
을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
이 때, 해당 블러킹 호출이 완료될 때까지 GameAnvilConfig에 설정한 DefaultAsyncAwaitTimeout 시간 만큼 대기한다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용
AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생@Suspendable public static void runAndWait(AsyncOp<java.lang.Object> AsyncOp, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
AsyncOp
을 사용한 방식은 callback 방식으로 비동기 처리를 제어하고 싶을 때 사용한다
AsyncOp은 비동기 처리를 추상화하므로 내부에서 블러킹 호출을 하면 안된다
비동기 호출을 한 후 반환값을 획득하기 위해 내부적으로 future 에 대한 대기 수행을 한다
일반적으로 CompletableFuture 나 ListenableFuture 를 사용하는 비동기 처리는 아래의 방식이 크게 필요하지 않다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용
AsyncOp
- 비동기 구현에 사용할 AsyncOp
, 이 비동기 처리에 사용되는 GameAnvilSettableFuture
를 구현부에서 명시적으로 set() 해주어야 한다timeout
- get() 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생public static <V> java.util.concurrent.Future<V> call(long nodeId, co.paralleluniverse.strands.SuspendableCallable<V> suspendableCallable)
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임하고 싶을 때 사용한다
V
- SuspendableCallable
을 구현한 형태nodeId
- 작업을 처리할 노드 아이디suspendableCallable
- 해당 노드에서 새로운 파이버에 의해 처리될 SuspendableCallable
Future
반환@Suspendable public static <V> V call(long nodeId, co.paralleluniverse.strands.SuspendableCallable<V> suspendableCallable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임한 후 반환값에 대해 대기한다
V
- SuspendableCallable
을 구현한 형태nodeId
- 작업을 처리할 노드 아이디suspendableCallable
- 해당 노드에서 새로운 파이버에 의해 처리될 SuspendableCallable
timeout
- 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
SuspendableCallable
의 결과 값 반환co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생public static java.util.concurrent.Future<java.lang.Object> run(long nodeId, co.paralleluniverse.strands.SuspendableRunnable suspendableRunnable)
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임하고 싶을 때 사용한다
run()은 별도의 반환값을 갖지 않으므로 비동기 처리의 종료 시점을 기다릴 필요가 없다면 run() 호출 후에 future 를 무시하고 다른 작업을 진행해도 된다
nodeId
- 작업을 처리할 노드 아이디suspendableRunnable
- 해당 노드에서 새로운 파이버에 의해 처리될 SuspendableCallable
Future
로 요청한 처리 반환@Suspendable public static void runAndWait(long nodeId, co.paralleluniverse.strands.SuspendableRunnable suspendableRunnable, long timeout, java.util.concurrent.TimeUnit unit) throws co.paralleluniverse.fibers.SuspendExecution, java.util.concurrent.TimeoutException
(구)RAsyncAwait 지정한 NonNetworkNode 스레드가 아닌 외부 스레드에서 해당 노드로 작업을 위임한 후 반환값에 대해 대기한다
run()은 별도의 반환값을 갖지 않지만 해당 비동기 처리의 종료 시점을 기다릴 필요가 있다면 이 메서드를 사용하도록 한다
nodeId
- 작업을 처리할 노드 아이디suspendableRunnable
- 해당 노드에서 새로운 파이버에 의해 처리될 SuspendableCallable
timeout
- 호출에 대한 결과를 얼마동안 대기할지 타임아웃값unit
- 타임아웃 파라미터의 시간 단위인 TimeUnit
co.paralleluniverse.fibers.SuspendExecution
- 이 메서드는 파이버를 Suspend 할 수 있음을 의미java.util.concurrent.TimeoutException
- 해당 메서드 호출 후 실패 시 지정한 시간이 지나면 타임아웃 발생public static void exec(java.util.concurrent.ExecutorService executor, java.lang.Runnable task)
ExecutorService
로 task 를 넘긴다
이 때, task 처리 완료 여부에 따른 더 이상의 코드 흐름은 만들 수 없다
executor
- task 를 처리할 ExecutorService
task
- 처리할 Runnable
public static void exec(java.lang.String executorId, java.lang.Runnable task)
executorId
- 부트스트랩 과정에서 addThreadPool()을 이용해서 미리 생성해둔 Executor의 아이디task
- 처리할 Runnable