2,多线程编程:
线程类型: 内核线程, 内核支持的用户线程, 线程库支持的用户线程。
一般来说线程共享父进程所有资源
1)简单的创建一个线程
#include <pthread.h>
#include <stdio.h>
void *create(void *arg)
{
//线程执行函数
printf("new thread created...\n");
}
int main(int argc, char* argv[])
{
pthread_t tidp;
int error;
error=pthread_create(&tidp, NULL, create, NULL);
if(error!=0) {
printf("pthread_create is not created...\n");
return -1;
}
printf("prthread_create is created\n");
return 0;
}
编译语句 gcc test.c -lpthread
2)线程等待:
int pthread_join(pthread_t thread, void **status ): 父线程等待thread线程, 而thread线程的返回值(如:pthread_exit(void*) )将传递给status
至于函数的返回值: 0表示成功, 非0为失败
3)线程同步:
(1)同步原语: 信号量,互斥锁,条件变量和读/写锁。
(2)信号量函数:sem_init, sem_wait, sem_post, sem_destroy
互斥量函数:pthread_mutex_init, ~lock, ~unlock, ~destroy