下雨了,淅淅沥沥
今天还是接着昨天线程控制的代码
1、pthread_join()的作用------->进程控制原语的wait()函数
wait()函数的作用如下:
1、等待子进程的结束
2、得到子进程的返回值
3、收尸,消除相关子进程的资源
pthread_exit()函数的作用是放在子线程里直接结束子线程的,直接调用即可
pthread_detach()函数的作用是直接使子线程的属性为分离状态(或者直接结束两个子线程)
所以当在子线程外部想要结束两个子线程的时候,需要确保两个子线程最终都结束掉
2、线程互斥锁的应用
当多线程对公共资源进行访问时,有可能会导致意想不到的结果,顺序是没有办法保证的,
所以就有了互斥锁的存在,在每个线程里操作时,都要上锁,在操作结束时,就要退锁
同样的机制,也可以使用POSIX机制的信号量来实现
互斥锁的系列函数有:
mutex_t mutex
pthread_mutex_init()
pthread_mutex_lock()
pthread_mutex_unlock()
pthread_mutex_destroy()
POSIX机制的信号量系列函数有:
sem_t *sem
sem_open()
sem_close()
sem_wait()
sem_post()
sem_unlink()
3、