y0u_bat
c언어 - pthread 쓰레드 본문
int ptrhead_create(phtread_t *thr_id, const pthread_attr_t *attr, void *함수명,void *arg);
// 쓰레드 생성 3번째 인자가 쓰레드에 쓰일 함수
int pthread_exit(void *return); // 현재 실행하고 있는 쓰레드 종료할때 사용
int pthread_join(pthread_t thr_id,void **thread_return);
// 쓰레드 종료될때까지 기다리다 특정 쓰레드 종료시 자원해제
pthread 쓰레드 예제
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> static pthread_t thr; static int thr_id; static bool thr_exit = true; static void *treturn; void thread_start(); void thread_stop(); void *thread_function1(void *arg); int main(int argc,char *argv[]) { int i = 0; thread_start(); while(1) { printf("test count : %d\n",i); i++; sleep(0.2); } thread_stop(); return 0; } void thread_start() { thr_exit = false; thr_id = pthread_create(&thr,NULL,thread_function1,NULL); } void thread_stop() { thr_exit = true; thr_id = pthread_join(thr,&treturn); } void *thread_function1(void *arg) { int i=0; while(!thr_exit) { printf("thread running : %d\n",i); i++; sleep(0.5); } pthread_exit((void*)0); } | cs |
컴파일 시
gcc -o pthread pthread.cpp -lpthread // -lpthread 옵션을 넣어줘야 된다.
컴파일 결과
'프로그래밍 > C언어' 카테고리의 다른 글
c언어 - 소켓프로그래밍(1:1 채팅) (3) | 2015.11.19 |
---|---|
C언어 - 소켓 프로그래밍(Server & Client 문자열 주고 받기) 예제 (4) | 2015.11.18 |
C언어 - 링크드리스트 linklist(추가,수정,삭제,검색,출력) 예제 (8) | 2015.11.16 |
C언어 - strcpy 함수구현 (0) | 2015.10.07 |
C언어 - strchr 함수구현 (0) | 2015.10.07 |
Comments