
linux多线程与多进程
yingge2016
这个作者很懒,什么都没留下…
展开
-
读写锁
#include #include #include #include #include static int count=0; pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER; void *fun_rd(void *data) { char *thd_name=(char *)data; w转载 2017-11-04 20:04:07 · 189 阅读 · 0 评论 -
条件变量
#include #include #include #include #include pthread_mutex_t mtx; pthread_mutexattr_t mtx_attr; int count; pthread_cond_t cond=PTHREAD_COND_INITIALIZER; void *thread_fun(void *data) { while(1)转载 2017-11-04 20:20:43 · 166 阅读 · 0 评论 -
共享内存
转载:http://www.cnblogs.com/skyme/archive/2011/01/04/1925404.html 共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。转载 2017-11-04 22:32:05 · 214 阅读 · 0 评论 -
mmap
mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和, 最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。 void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset); int munmap(void* start,size原创 2017-11-05 21:20:21 · 1119 阅读 · 0 评论 -
信号量(1/2)_无名信号量
信号量 1 什么是信号量 信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程) 所拥有。 信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明 它被占用,测试的线程要进入睡眠队列中,等待被唤醒。 2 信号量的分类 在学习信号量之前,我们必须先知道——Linux提供两种信号量: (1) 内核信号量,由内核控制路径使用。主要用于原创 2017-11-05 21:30:16 · 466 阅读 · 0 评论 -
信号量(2/2)_有名信号量
有名信号量 有名信号量的特点是把信号量的值保存在文件中。 这决定了它的用途非常广:既可以用于线程,也可以用于相关进程间,甚至是不相关进程。 (a)有名信号量能在进程间共享的原因 由于有名信号量的值是保存在文件中的,所以对于相关进程来说,子进程是继承了父 进程的文件描述符,那么子进程所继承的文件描述符所指向的文件是和父进程一样的,当 然文件里面保存的有名信号量值就共享了。 (b)有名信原创 2017-11-05 23:18:43 · 1017 阅读 · 0 评论 -
无名管道
下面的例子是无名管道和信号量结合完成的。 读端fd[0] 写端fd[1] #include #include #include #include #include int main() { int fd[2]; sem_t sem_mutex; if(sem_init(&sem_mutex,1,1)<0) { perror("sem_init"); retur原创 2017-11-06 15:20:16 · 249 阅读 · 0 评论