반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 |
#include <stdio.h>
#ifndef __linux__ // for windows
#include <windows.h>
#define CREATE_THREAD(id, function, param) \
CreateThread(NULL, 0, function, param, 0, &id);
#define THREAD_TYPE_RETURN DWORD WINAP
#define THREAD_TYPE_PARAM LPVOID
#define THREAD_TYPE_ID DWORD
#define SLEEP(x) Sleep(x*1000)
#else // for linux
#include <pthread.h>
#include <unistd.h>
#define CREATE_THREAD(id, function, param) \
pthread_create(&id, NULL, function, param);
#define THREAD_TYPE_RETURN void*
#define THREAD_TYPE_PARAM void*
#define THREAD_TYPE_ID pthread_t
#define SLEEP(x) sleep(x)
#endif
THREAD_TYPE_RETURN thraed_fuction(THREAD_TYPE_PARAM param) {
while (1) {
printf("%s\n", (char*)param);
Sleep(1);
}
return 0;
}
int main(void) {
THREAD_TYPE_ID thread_id;
char *msg = "hi";
CREATE_THREAD(thread_id, thraed_fuction, msg);
while (1) {
printf("%s\n", "hello!!");
Sleep(1);
}
return 0;
} |
cs |
window or linux common
전처리기를 이용하여 리눅스와 윈도우를 구분하여 처리하게 되며 스레드 생성 또한 매크로 함수를 정의하여 처리하도록 함.
추후 좀 더 자세히 포스팅 계획.
반응형
'[ ★ ]Study > Network' 카테고리의 다른 글
bind 함수 (0) | 2017.03.05 |
---|---|
socket 함수 (linux, window) (0) | 2017.03.05 |
CGI 란 (0) | 2017.02.26 |
Packet Capture Library (0) | 2017.02.26 |
connect 함수 (0) | 2017.02.26 |
댓글