
POSIX多线程笔记
丶未云何龙
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POSIX多线程笔记(1):pthread_detach与pthread_join的区别与应用
概念POSIX线程的一个特点是:除非线程是被分离的了,否则在线程退出的时候,它的资源是不会被释放的。所以POSIX提供了pthread_detach函数用来分离线程:int pthread_detach(pthread_t thread);它设置线程的内部选项来说明线程退出后,其所占有的资源可以被回收。参数thread是要分离的线程的ID。pthread_join函数可以使调用这个函数的线...原创 2019-01-29 20:34:27 · 804 阅读 · 3 评论 -
POSIX多线程笔记(4):互斥量与条件变量
原创 2019-02-16 09:33:29 · 314 阅读 · 0 评论 -
POSIX多线程笔记(2):线程的退出和取消线程
线程退出中exit 和pthread_exit的区别进程的终止可以通过在主函数main()中直接调用exit、return,或者通过进程中的任何其它线程调用exit来实现。在任何一种情况下,该进程的所有线程都会终止。而pthread_exit函数则是使调用改函数的线程中止运行,并且允许线程传递一个指针。它的形式为:void pthread_exit(void *value_ptr) ;连接...原创 2019-01-31 10:27:56 · 828 阅读 · 0 评论 -
POSIX多线程笔记(3):线程特定数据
在单线程程序中,函数经常使用全局变量或静态变量,这是不会影响程序的正确性的,但如果线程调用的函数使用全局变量或静态变量,则很可能引起编程错误,因为这些函数使用的全局变量和静态变量无法为不同的线程保存各自的值,而当同一进程内的不同线程几乎同时调用这样的函数时就可能会有问题发生。而解决这一问题的一种方式就是使用线程特定数据机制。static char str[100]; void A(char* ...原创 2019-02-12 08:59:06 · 227 阅读 · 0 评论 -
POSIX多线程笔记(5):信号
信号的概念信号(signal)是向进程发送的软件通知,通知进程有事件发生。引发信号的事件发生时,信号就被生成(generate)了。进程根据信号采取行动时,信号就被传递(deliver)了。信号的寿命(lifetime)就是信号的生成和传递之间的时间间隔。已经生成但还未被传递的信号被称为挂起(pending)的信号。在信号生成和信号传递之间可能会有相当长的时间。传递信号时,进程必须在处理器上运行...原创 2019-02-19 10:26:01 · 341 阅读 · 0 评论 -
POSIX多线程笔记(6):读写锁
读写锁的概念在一些程序中存在一个称作读者写者的问题,即对于某些资源的访问,存在两种可能的情况,一种是访问必须是排他的,比如两个进程不能同时改变一个全局变量的数值,称作写操作,另一种是访问可以是共享的,称作读操作。显而易见,这一问题和相应的表述是从对文件的读写操作中引申出来的。在多线程中,有一些公共数据修改的机会比较少,而读的机会却是非常多的,此公共数据的操作基本都是读,如果每次操作都给此段代码...原创 2019-02-19 20:33:35 · 454 阅读 · 0 评论 -
POSIX多线程笔记(7):信号量(Semaphore)
信号量的概念1965年,E.W.Dijkstra提出了信号量的概念,之后信号量即成为操作系统实现互斥和同步的一种普遍机制。信号量是包含一个非负整型变量,并且带有两个原子操作wait和signal。wait还可以被称为down、P或lock,signal还可以被称为up、V、unlock或post。如果信号量的非负整形变量S大于零,wait就将其减1,如果S等于0,wait就将调用线程挂起。对于...原创 2019-02-20 10:20:29 · 932 阅读 · 0 评论