随笔分类 -  操作系统

什么是死锁,简述死锁发生的四个必要条件,如何避免与预防死锁
摘要:什么是死锁 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P1 阅读全文

posted @ 2017-12-14 12:17 wsw_seu 阅读(917) 评论(0) 推荐(0)

linux c 线程间同步(通信)的几种方法--互斥锁,条件变量,信号量,读写锁
摘要:Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量、信号量和读写锁。 下面是思维导图: 一、互斥锁(mutex) 锁机制是同一时刻只允许一个线程执行一个关键部分的代码。 1 . 初始化锁 其中参数 mutexattr 用于指定锁的属性(见下),如果为NULL则使用缺省属性。 互斥锁 阅读全文

posted @ 2017-12-14 10:00 wsw_seu 阅读(14822) 评论(0) 推荐(0)

为何条件变量要和互斥量联合使用
摘要:In Thread1: pthread_mutex_lock(&m_mutex); pthread_cond_wait(&m_cond,&m_mutex); pthread_mutex_unlock(&m_mutex); In Thread2: pthread_mutex_lock(&m_mutex 阅读全文

posted @ 2017-12-14 09:56 wsw_seu 阅读(2854) 评论(0) 推荐(0)

堆和栈的区别(转)
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 阅读全文

posted @ 2017-12-11 09:55 wsw_seu 阅读(137) 评论(0) 推荐(0)

导航