编译: gcc test.c -o test -lpthread 逻辑: 主函数 创建 两个线程 1,2 线程1:累加 i ,每次都互斥锁 当i 是3的倍数的时候 发送 改变条件信号给线程2 ; 线程2:当 i <6 时,不断互斥锁操作,当 不是3的倍数的时候等待 调节改变 信号,阻塞线程; 1=1 ...
分类:
编程语言 时间:
2016-10-25 18:40:12
阅读次数:
198
linux 环境有提供好的pthread_cond_wait() 和 phread_signal()、pthread_broadcast() windows需要自己封装,利用semophore控制线程等待和释放,先简单谈一下设计好后api该 如何使用。 假设我们封装好条件变量等待函数名字叫做wait ...
一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 1、消息传递(管道、FIFO、消息队列) 2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 3、共享内存(匿名的和具名的) 4、远程过程调用(Solaris门和Sun RPC) 1、消息传递(管 ...
分类:
编程语言 时间:
2016-10-18 18:43:36
阅读次数:
248
python高级之多线程 本节内容 线程与进程定义及区别 python全局解释器锁 线程的定义及使用 互斥锁 线程死锁和递归锁 条件变量同步(Condition) 同步条件(Event) 信号量 队列Queue Python中的上下文管理器(contextlib模块) 自定义线程池 1.线程与进程定 ...
分类:
编程语言 时间:
2016-10-18 15:54:04
阅读次数:
335
编译: [X61@horizon threads]$ gcc thread_cond.c -lpthread -o tcd 以下是程序运行结果: [X61@horizon threads]$ ./tcd thread1: lock 30thread1: unlock 40thread2: lock ...
分类:
其他好文 时间:
2016-10-13 18:53:06
阅读次数:
164
C++并发编程 等待与唤醒 条件变量 条件变量, 包括(std::condition_variable 和 std::condition_variable_any) 定义在 condition_variable 头文件中, 它们都需要与互斥量(作为同步工具)一起才能工作. std::conditio ...
分类:
编程语言 时间:
2016-10-08 01:36:00
阅读次数:
665
信号量:信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为 ...
分类:
其他好文 时间:
2016-10-07 23:16:25
阅读次数:
180
如果发出信号(pthread_cond_signal, pthread_cond_broadcast)时,没有线程在条件变量的wait 中等待,则这个信号丢失,其他线程走到wait时,投入睡眠状态。 此处可以增加一个x,广播中其值取线程数,线程里判断如果其值为0,则等待,否则对其减一,表示收到。 因 ...
分类:
编程语言 时间:
2016-09-17 20:31:03
阅读次数:
186
生产者和消费者同时工作:生产者1s生产一次,消费者5s消费一次生产者5s生产一次,消费者1s消费一次这样的话效率很低,就好像我去商店买西瓜,超市里西瓜卖完了,我每过一小时去看一次有没有新来的西瓜。如果我把手机号码留给老板,西瓜到了让老板通知我,这样效率就高了。看下..
分类:
其他好文 时间:
2016-09-16 21:23:09
阅读次数:
173
sql优化: 1.当结果集只有一行数据时,使用LIMIT 1; 2.避免使用select * 这种,需要哪些字段,就直接写出来; 3.使用where语句,条件变量尽量详细; 4.使用join代替子查询; 5.使用enum、char代替varchar; 6.尽可能使用not null; 7.固定长度的 ...
分类:
数据库 时间:
2016-09-15 22:55:06
阅读次数:
225