条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待条件变量的条件成立而挂起(此时不再占用cpu);另一个线程使条件成立(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。/* 等待条件 *//* 注意:pthread_cond_wait为阻...
分类:
编程语言 时间:
2014-09-09 15:02:48
阅读次数:
288
#include #include #include #include int ticket_cnt = 20; /* 共有20张票 */typedef struct tag{ int s_id; pthread_mutex_t *s_p;}DATA,*pDATA;void* h...
分类:
编程语言 时间:
2014-09-09 12:13:48
阅读次数:
208
互斥锁是用来保护一段临界区的(每个进程中访问临界资源的那段代码称为临界区),它可以保证在某段时间内只有一个线程在执行一段代码或者访问某个资源。1. 互斥锁的初始化pthread_mutex_init(2)int pthread_mutex_init(pthread_mutex_t *restrict...
分类:
编程语言 时间:
2014-09-09 11:03:18
阅读次数:
238
打算写一些入门级别的多线程笔记,等我把多线程的函数都整理完再一点点添加(一下子全都搞上去,会有种抓不到重点的感觉)线程创建函数pthread_create(4)int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*star...
分类:
编程语言 时间:
2014-09-09 10:51:58
阅读次数:
284
在很多线程实现的案例中,pthread_t作为抽象类型,被指定为长度为4的整行作为线程ID。在一些iSeries服务器的线程实现上,线程ID是一个64位的整型数值和pthread_t是一个抽象的结构体包含数值和一些其他的参数。抽象化允许进程容纳上千个线程。如果不允许移植,不允许进程访问pth..
分类:
其他好文 时间:
2014-09-08 11:00:07
阅读次数:
576
1、进程创建int pthread_create (pthread_t * thread_id, __const pthread_attr_t * __attr, void *(*__start_routine) (void *), void *__restrict __arg);第一个参数为指向线...
分类:
编程语言 时间:
2014-09-05 17:42:41
阅读次数:
208
例子1:键盘输入的字符会排队,一个一个被线程处理。#include #include #include using namespace std;char ch = 0;pthread_t tid;void *thread_func(void *arg){ while(true) ...
分类:
编程语言 时间:
2014-09-05 14:07:31
阅读次数:
291
pthread_cond_wait 和socket数据信息的队列实现...
分类:
其他好文 时间:
2014-09-05 10:03:21
阅读次数:
143
额,时隔两年重新写博客了。这次看一下thread_cond_wait(pthread_cond_t * cond, pthread_mutex_t *mutex)和thread_cond_signal(pthread_cond_t *cond);理解了这两个函数以后,同时对于java中Object的...
分类:
编程语言 时间:
2014-09-04 00:04:07
阅读次数:
270
1. sem_init
名称
sem_init - 初始化一个未命名信号量
概要
#include
int sem_init(sem_t *sem, int pshared, unsigned int value);
链接库 -pthread
描述
sem_inti() 在sem指定的地址上初始化未命名信号量。参数value指定信号量的初始值。
参数ps...
分类:
系统相关 时间:
2014-09-03 18:14:27
阅读次数:
399