Linux与多线程
文章平均质量分 78
Mr_weng_
这个作者很懒,什么都没留下…
展开
-
Linux多线程——使用信号量同步线程
一、什么是信号量线程的信号量与进程间通信中使用的信号量的概念是一样,它是一种特殊的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值,系统将保证所有的操作都将依次进行。而只有0和1两种取值的信号量叫做二进制信号量,在这里将重点介绍。而信号量一般常用于保护一段代码,使其每次只被一个执行线程运行。我们可以使用二进制信号转载 2014-08-18 18:01:39 · 550 阅读 · 0 评论 -
Linux多线程——使用互斥量同步线程
一、什么是互斥量互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。转载 2014-08-28 17:59:01 · 506 阅读 · 0 评论 -
Linux中的fork()函数分析
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来转载 2014-11-07 12:50:00 · 688 阅读 · 0 评论 -
Linux进程间的通信(一)
一、顺序程序与并发程序特征顺序程序特征顺序性封闭性:(运行环境的封闭性)确定性可再现性并发程序特征共享性并发性随机性二、进程互斥1、由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥2、系统中某些资源一次只允许一个进程使用,称这样的资源转载 2014-11-06 19:35:17 · 516 阅读 · 0 评论 -
Linux进程间的通信(二)
一、死锁(1) 死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。如果所有进程都在等待一个不可能发生的事,则进程就死锁了。(2)死锁产生的必要条件:互斥条件进程对资源进行排它性使用,即在一段时间内某资源仅为一个进程所占用。 请求和保持条件当进程因请求资源而阻塞转载 2014-11-06 19:54:17 · 677 阅读 · 0 评论