本章涉及到线程的一些基本知识点,讨论了现有的创建线程和销毁线程的POSIX.1原语,此外,重点介绍了线程同步问题,讨论了三种基本的同步机制:互斥量、读写锁、条件变量。 ...
分类:
编程语言 时间:
2016-05-30 12:47:57
阅读次数:
129
本章要点
*等待事件
*使用futures等待一次性事件(waiting for one-off events with futures)
*等待时间限制
*使用同步操作来简化代码
这章主要描述了如何使用条件变量和futures来等待事件,以及如何使用他们来使线程同步操作更加简化....
分类:
编程语言 时间:
2016-05-27 13:07:11
阅读次数:
353
参考自:http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html
1、Socket 简介
本地的进程间通信(IPC)有多种方法:
1)消息传递(PIPE、FIFO、消息队列等)
2)同步(互斥量、条件变量、读写锁、记录锁、信号量等)
3)共享内存(匿名的和具名的)
4)远程过程调用(Sol...
分类:
其他好文 时间:
2016-05-18 19:34:28
阅读次数:
218
最基本的生产者消费者模型:
一个生产者
一个消费者
一个BUFFER
一个锁
两个条件变量
/*pthread_cond_wait的大致操作流程:
解除已被调用线程锁住的锁
等待条件,睡眠阻塞
条件到来,醒来
返回前锁住解开的调用线程锁住的锁
pthread_cond_signal用于唤醒在某个条件变量上等待的线程,一般是1个pthread_cond_broadcast唤醒所有在某个条件...
分类:
其他好文 时间:
2016-05-13 00:24:35
阅读次数:
244
Linux IPC 常见的方式写 Linux Server 端程序,必然会涉及到进程间通信 IPC. 通信必然伴随着同步机制,下面是一些常见的通信与同步机制:
进程间通信:匿名管道,命名管道,消息队列,共享内存,Domain Socket, 本机 TCP Socket,文件
进程间同步:信号,信号量
线程间同步:条件变量,互斥量,读写锁,自旋锁,Barrier.
对于大部分的业务场景,本机 TCP...
分类:
系统相关 时间:
2016-05-12 23:26:34
阅读次数:
283
Linux--Linux互斥锁、条件变量和信号量
进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。
一、互斥锁
互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共...
分类:
系统相关 时间:
2016-05-12 21:41:20
阅读次数:
216
在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) @d_start @d_end, @shopid 这三个都是调用存储过程传进来的参数,要将这些与varchar类型的拼 ...
分类:
数据库 时间:
2016-05-12 09:23:01
阅读次数:
318
在之前的博文中有说过线程,线程是一个执行流,一个指令序列,一个指令分支,为了共享资源而产生的线程,但只要是资源,都会出现资源的数目与操作安全问题,所以在线程这一块,设计了信号量,条件变量,各种锁,来保证资源的访问独占性与原子性。什么是线程安全?线程安全指的..
分类:
编程语言 时间:
2016-05-09 07:23:17
阅读次数:
223
线程信号量和进程信号量类似,Unix提供了两套与信号量有关的API。POSIX和System V。两套API都可以在线程和进程中使用。 进程中使用信号量是为了保证临界资源的控制,线程中已经有了互斥锁,而且还有条件变量对线程进行控制,信号量是不是就有点多余了呢? 其实在进程中也是可以使用互斥锁和控制变 ...
分类:
编程语言 时间:
2016-05-08 19:49:08
阅读次数:
160
其实在操作系统中,都存在着多进程与多线程来优化处理整个操作系统的逻辑,不仅仅在操作系统,我们所编写的程序中都一样存在着各种地方使用多进程多线程,虽然多进程多线程看着很好很强大,但是总存在着非原子性情况下的执行顺序确定操作。所以就出现了信号量,条件变量,互斥..
分类:
系统相关 时间:
2016-05-06 19:47:49
阅读次数:
426