- 博客(5)
- 收藏
- 关注
原创 循环队列 - 生产者与消费者模型
循环队列可以实现一个生产者与一个消费者模型, 不使用锁。 循环队列:size=10生产者线程:不停地把从0递增的整数push到队列(尾部不存储,也就是最大存9个数),满了就等1s。消费者线程:每3s从队列pop一个元素。[xiongli@localhost data_struct]$ ./a.out push 0 at data[0]push 1
2017-02-22 18:45:25 2184
原创 判断循环队列满
判断队列为空:rear = front 判断队列满:(rear+1)%maxsize=front 往往很多人,像我一样,未能很好的理解这个表达式。front(读起始位置)和rear(写起始位置)如上图位置:rear移动一步的偏移位置(相对队列起始位置0)是n=(rear+1)%maxsize。如果n=front,表示队列满。 实际应用中,我们在写入一批数据前
2017-02-22 17:10:08 4751
原创 linux文件锁-续篇
来自文摘: http://www.gnu.org/software/libc/manual/html_node/File-Locks.html 概要如下:1. fcntl函数用来支持记录锁(recording locking), 防止多个进程同时对一个文件地某些部分访问造成错误。 锁分为共享锁和互斥锁两种。2. read、write函数不检查文件的锁情况(fread,fwrit
2017-02-07 17:48:53 344
原创 linux文件锁
flock和lockf从底层的实现来说,Linux的文件锁主要有两种:flock和lockf。需要额外对lockf说明的是,它只是fcntl系统调用的一个封装。从使用角度讲,lockf或fcntl实现了更细粒度文件锁,即:记录锁。我们可以使用lockf或fcntl对文件的部分字节上锁,���flock只能对整个文件加锁。这两种文件锁是从历史上不同的标准中起源的,flock来自BSD而lockf
2017-02-07 16:13:03 1280
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人