POSIX线程学习
文章平均质量分 71
hitrose27
熟男
展开
-
pthread学习笔记(四)--跋涉之旅之Posix线程编程指南(2)
原文链接概念及作用在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效,但却可以跨多个函数访问,比如程序可能需要每个线程维护一个链表,而使用相同的函数操作,最简单的办法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构可以由Posix线程库维护,称为线程私有数据(Thread-specificData,或TSD)。原创 2011-04-14 22:31:00 · 1156 阅读 · 0 评论 -
pthread学习笔记(二)--pthread常用API及简单介绍
<br />经过了上篇文档的初步学习,对pthread有了一个简单的感性认识,但是对pthread的认识还是比较少,在这篇文档当中将要主要学习pthread的一些常用的API。<br /> <br />首先是pthread的线程创建API: pthread_create<br />#include<pthread.h>int pthread_create(pthread_t *thread,//要创建的线程 pthread_attr_t原创 2011-04-14 16:35:00 · 2306 阅读 · 1 评论 -
pthread学习笔记(三)--跋涉之旅之Posix线程编程指南(1)
<br />之前对pthread_attr_t这个属性对象的了解非常浅薄,从网上找了一些解释比较好的资料,链接<br /> <br />__detachstate,表示新线程是否与进程中其他线程脱离同步,如果置位则新线程不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省为PTHREAD_CREATE_JOINABLE状态。这个属性也可以在线程创建并运行以后用pthread_detach()来设置,而一旦设置为PTHREAD_CREATE_DETACH状态(不论是创原创 2011-04-14 18:21:00 · 1259 阅读 · 0 评论 -
pthread学习笔记(一)
<br />初学也是从大牛的经验学起,POSIX 线程详解<br /> <br />文中对为什么使用pthread做了详尽的阐述,并且举了一些例子。<br /> <br />在编译pthread的程序的时候,需要增加-lpthread的选项(因为pthread并不是linux默认的库),这一点很重要。<br /> <br />下面的文章摘自上面的文章<br /> <br />=========================摘引========================================原创 2011-04-14 14:11:00 · 1753 阅读 · 0 评论 -
pthread_mutex_trylock的问题及解决
在需要使用非阻塞的锁时,trylock是一个比较好的选择,但是使用的时候碰见了一些问题:需要使用PTHREAD_MUTEX_ERRORCHECK_NP来定义一个检错锁,但是不管如何都编译不过。即使在编译的时候加入-D_GNU_SOURCE也一样会提示没有定义。迫于无奈,采用了麻烦一些的初始化方式: pthread_mutexattr_t ma;原创 2012-04-10 11:19:52 · 15952 阅读 · 1 评论 -
pthread学习笔记(五)--跋涉之旅之Posix线程编程指南(3)
原文链接 互斥锁尽管在PosixThread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在PosixThread中定义了另外一套专门用于线程同步的mutex函数。 关于IPC的相关知识可以登录链接查看。IPC信号量的知识在文章IPC under Linux-Semaphore中有详细的说明链接。 1原创 2012-05-07 10:10:42 · 779 阅读 · 0 评论 -
linux多线程条件下的计数
转载自http://soft.chinabyte.com/os/412/12200912.shtml最近编码需要实现多线程环境下的计数器操作,统计相关事件的次数。下面是一些学习心得和体会。不敢妄称原创,基本是学习笔记。遇到相关的引用,我会致谢。 当然我们知道,count++这种操作不是原子的。一个自加操作,本质是分成三步的: 1 从缓存取到寄存器 2 在寄存器转载 2012-11-19 09:31:40 · 921 阅读 · 0 评论