|
virtual void | SetDesiredThreadCount (int threadCount)=0 |
|
virtual void | Process (int timeoutMs)=0 |
|
virtual void | RunAsync (RunAsyncType type, RunAsyncFunction func, void *context)=0 |
|
This is thread pool object for host module(NetServer,NetClient)
Please refer to Share Thread Pool that has same host module in a server. for more detail.
- tp.SetEventSink(...);
- tp.SetThreadCount(n);
- NetClient and NetServer references variable tp
- delete tp;
Creates ThreadPool for server communications
- Parameters
-
eventSink | You can implement your own event handlers regarding to thread pool here. |
threadCount | Specifies how many threads are in this thread pool. If you specify zero, this runs as 'zero thread pool mode'. |
virtual void Proud::CThreadPool::Process |
( |
int |
timeoutMs | ) |
|
|
pure virtual |
Zero thread pool mode란, 이 thread pool 객체가 별도의 스레드를 갖지 않고, 사용자가 갖고 있는 스레드 위에서 일을 하는 것을 말합니다.
Create() 호출시 thread count 값을 0을 지정하면 이 thread pool 객체는 zero thread pool mode가 됩니다.
Zero thread pool mode를 쓰는 경우, 이 thread pool 객체는 사용자가 명시적으로 일을 하라는 지시를 해야만 작동합니다. 이 함수를 호출하면 이 thread pool 객체는 일을 합니다. Zero thread pool mode가 아니면 이 함수는 아무것도 하지 않습니다. 여러분은 Zero thread pool mode이면 이 함수를 반복해서 호출하십시오.
처리할 일이 있을 때까지 기다리는 최대 시간(밀리초)입니다. 0을 넣으면 대기를 하지 않습니다.
virtual void Proud::CThreadPool::RunAsync |
( |
RunAsyncType |
type, |
|
|
RunAsyncFunction |
func, |
|
|
void * |
context |
|
) |
| |
|
pure virtual |
함수 func 를 이 Thread pool 의 스레드에서 비동기로 실행합니다.
- Parameters
-
type | 비동기 실행의 종류 |
func | 비동기로 실행할 함수 |
context | 함수에 전달할 데이터 |