|
||||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Object | +--Threadin Thread.h
Inner Classes, Typedefs, and Enums | |
enum |
Thread::anonymous_enum_1
|
class |
Thread::Barrier
|
class |
Thread::CondVar
CondVar: Conditional Variable Windows Note. |
class |
Thread::Event
|
typedef |
Thread::initRoutine
|
typedef |
Thread::KeyType
|
class |
Thread::Mutex
|
typedef |
Thread::OnceType
다중 스레드 환경에서 단일 호출을 위한 제어변스의 타입을 정의한다. |
class |
Thread::SingleLock
|
typedef |
Thread::SingleLockMutex
|
typedef |
Thread::SingleLockSpin
|
class |
Thread::SingleTryLock
|
typedef |
Thread::SingleTryLockMutex
|
typedef |
Thread::SingleTryLockSpin
|
class |
Thread::SpinLock
|
Constructor Summary | |
Thread( const char_t* _name = NULL )
기본 생성자이다. |
Method Summary | |
static void |
crtLock( const void* _p )
C 런타임이 다중 스레드에 안전하지 않으면 이것을 사용하여 동기화 한다. |
static void |
crtUnlock( const void* _p )
|
static long long |
decrementAndGet( volatile long long& _n )
|
static Thread* |
getCurrentThread()
호출한 스레드의 객체를 반환한다. |
static unsigned long |
getCurrentThreadId()
호출한 스레드의 스레드의 ID을 얻는다. |
unsigned long |
id() const
스레드 ID를 반환한다. |
static long long |
incrementAndGet( volatile long long& _n )
|
protected virtual bool |
init()
스레드 객체를 초기화한다. |
int |
join()
스레드의 종료를 기다린다. |
static Thread::KeyType |
keyCreate()
스레드 전용 지억장소를 위한 키를 생성한다. |
static void |
keyDelete( Thread::KeyType _key )
스레드 전용 기억장소를 위한 키를 삭제한다 |
static void* |
keyGetValue( Thread::KeyType _key )
호출 스레드 전용 기억장소의 값을 리턴한다. |
static void |
keySetValue( Thread::KeyType _key, void* _value )
호출 스레드 전용 기억장소에 값을 설정한다. |
const String& |
name() const
스레드 생성에 주어진 이름을 반환한다. |
static void |
once( volatile Thread::OnceType& _onceControl, Thread::initRoutine _initRoutine )
다중 스레드 환경에서 _initRoutine의 단일 호출을 보장한다. |
protected virtual int |
run()= 0
스레드의 주 실행 루프를 구현한다. |
static void |
sleep( unsigned int _mills )
미리초만큼 스레드의 실행을 중지한다. |
void |
start()
스레드를 생성하고 시작한다. |
bool |
started() const
스레드의 시작여부를 반환한다. |
virtual String |
toString() const
객체의 간략한 정보를 반환한다. |
static void |
yield()
CPU를 다른 스레드에 양보한다. |
Methods inherited from class Object |
toString, destroy, className, isInstanceOf, typeInfo |
Constructor Detail |
public Thread( const char_t* _name = NULL );
_name
- 객체에 이름을 준다.Method Detail |
public static void crtLock( const void* _p );
crtLock을 호출하면 반드시 이 후에 crtUnlock을 호출 해야만 한다.
example
char a[100]; time_t now = time(NULL); Thread::crtLock(&now); char* cp = ctime(&now); strcpy(a, cp); Thread::crtUnlock(&now);
public static void crtUnlock( const void* _p );
public static long long decrementAndGet( volatile long long& _n );
public static Thread* getCurrentThread();
이 메소드는 스레드 생성 후 init()
에서 스레드 전용 기억장소에 설정한 것의 반환값이다.
따라서, init()
이 호출되지 않으면 NULL을 리턴한다.
public static unsigned long getCurrentThreadId();
public unsigned long id() const;
public static long long incrementAndGet( volatile long long& _n );
protected virtual bool init();
이 메소드는 start()
에 의해 생성된 스레드 내에서 호출된다.
기본 구현은 getCurrentThread()
을 위해
객체의 포인터를 스레드 전용 기억장소에 설정한다.
run()
은 호출되지않고 join()
은 -1을 반환한다.keySetValue
public int join();
run()
이 반환한 값public static Thread::KeyType keyCreate() throw( SysError* );
UNIX는 pthread_key_create, Windows는 TlsAlloc을 사용한다.
SysError
- 키 생성이 실패하면 예외가 던져지며, 사유는 다음과 같다.
public static void keyDelete( Thread::KeyType _key ) throw( SysError* );
_key
- keyCreate
로 반환된 값.SysError
- _key가 유효하지 않으면 예외가 던져진다.public static void* keyGetValue( Thread::KeyType _key ) throw( SysError* );
_key
- keyCreate
로 반환된 값.SysError
- _key가 유효하지 않으면 예외가 던져진다.public static void keySetValue( Thread::KeyType _key, void* _value ) throw( SysError* );
_key
- keyCreate
로 반환된 값.SysError
- _key가 유효하지 않으면 예외가 던져진다.public const String& name() const;
public static void once( volatile Thread::OnceType& _onceControl, Thread::initRoutine _initRoutine );
사용의 예는 다음과 같다.
static Thread::OnceType once = Thread::ONCE_INIT; static void initRoutine() { ... } Thread::once(once, initRoutine);
protected virtual int run()= 0;
public static void sleep( unsigned int _mills );
public void start() throw( SysError* );
public bool started() const;
start()
호출로 스레드가 시작되었으면 true, 그렇지 않으면 false를 반환한다.public virtual String toString() const;
public static void yield();
|
||||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |