linux同步与互斥应用系列
shallnet
一个没赶上脑残一代90后的80后程序猿!
展开
-
Linux同步与互斥应用(零):基础概念
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 当操作系统进入多道批处理系统时代以后,一个系统中就存在多个任务,每个任务都按照一定的算法进行调度来使用内存、cpu等共享资源。当其中一个任务等待其他资源时,该任务可以暂时睡眠,操作系统调度另外任务继续执行额,这样可以使系统资源得原创 2014-12-17 19:01:15 · 1581 阅读 · 0 评论 -
Linux互斥与同步应用(一):posix线程及线程间互斥
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 有了进程的概念,为何还要使用线程呢?首先,回忆一下上一个系列我们讲到的IPC,各个进程之间具有独立的内存空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。而同一个进程下的线程是共享全局内存的,所以原创 2014-12-17 19:13:12 · 1618 阅读 · 0 评论 -
Linux互斥与同步应用(六):文件锁
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 当一个系统中存在多个进程同时操作同一个文件时,为了保证数据的正确, 一般会将文件上锁来避免共享文件产生的竞争状态。在linux系统下文件上锁可以使用fcntl函数来实现。函数fcntl原型如下:原创 2015-01-06 23:43:35 · 2405 阅读 · 0 评论 -
Linux互斥与同步应用(二):posix线程同步
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 上一节说到线程的互斥锁,互斥锁适合防止访问某个共享变量,这一节我们来看看两个线程如何实现同步。互斥锁也可以实现线程同步,当该值满足某种条件时当前线程继续执行,否则继续轮询,不过这样相当浪费cpu时间。我们需要的是让某个线程进入睡原创 2014-12-20 14:05:48 · 1666 阅读 · 0 评论 -
Linux互斥与同步应用(三):posix线程实现单个生产者和单个消费者模型
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 在第一节说到了生产者消费者问题,这一节我们来实现这样一个稍作修改的模型: 初始时缓冲区为空,生产者向缓冲区写入数据,消费者在缓冲区为空的情况下睡眠,当生产者写满缓冲区一半之后后通知消费者可以开始消费,生产者开始睡眠,直到消费者消原创 2014-12-23 15:32:56 · 1571 阅读 · 0 评论 -
Linux互斥与同步应用(四):posix信号量的互斥与同步
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 在前面讲共享内存的IPC时曾说共享内存本身不具备同步机制,如果要实现同步需要使用信号量等手段来实现之,现在我们就来说说使用posix的信号量来实现posix多进程共享内存的同步。其实信号量也可以使用在同一进程的不同线程之间。原创 2014-12-23 21:03:38 · 1735 阅读 · 0 评论 -
Linux互斥与同步应用(五):system V信号量的互斥与同步
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 system V信号量操作类似于posix信号量,但system V信号量的操作要复杂得多,posix信号量使用步骤为sem_init(sem_open)-->sem_wait(sem_post) --> sem_close详见上一原创 2015-01-05 18:54:24 · 2166 阅读 · 0 评论