- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 生产者、消费者模型
linux中当两个线程要访问同一块临界区域时,比如一个读进程,一个写进程,一个在临界区域写数据,另一个在临界区域读数据,被访问的这块临界区域通常叫缓冲区,而往这块缓冲区里写数据的叫生产者,在这块缓冲区里读数据的叫消费者。要实现消费者与生产者的关系,要满足一个原则,就是“321“原则。3代表的是有三个关系:3种关系:生产者与生产者的关系、消费者与消费者的关系、生产者与消费 者的关系2代表的是两种角色:
2017-06-14 13:52:07 430
原创 线程之互斥锁与死锁
互斥锁:1、互斥锁基本原理: 互斥锁是一个二元变量,其状态为开锁(允许0)和上锁(禁止1),将某个共享资源与某个特定互斥锁在逻辑上绑定(要申请该资源必须先获取锁)。 (1)访问公共资源前,必须申请该互斥锁,若处于开锁状态,则申请到锁对象,并立即占有该锁,以防止其他线程访问该资源;如果该互斥锁处于锁定状态,则阻塞当前线程。 (2)只有锁定该互斥锁的进程才能释放
2017-06-05 14:00:31 13590 5
原创 线程初识
线程的概念1、在进程中,进程承担资源分配,而线程是调度的基本单位,线程在进程内部运行,那么,什么是线程呢?简单来说一个线程是进程的一个顺序执行流。同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被称为轻负荷进程。一个进程中可以包含多个线程。linux中线程又称为轻量级进程。线程的特点:我们已经知道进程主要是独占系统资源,独享系统地址空间
2017-06-03 23:08:51 568
原创 堆知识总结
堆是一种完全二叉树,堆结构的二叉树存储方式分为大堆和小堆。大堆:每个父节点都大于孩子节点小堆:每个父节点都小于孩子节点创建一个大堆:向下调整算法思路:我们知道堆均是完全二叉树,因此一个父节点的子节点即child = parent*2+1;因此在向下调整算法中从根节点开始逐一与它的孩子进行比较,每次保证一棵树最大数据是根节点。例如:int a [] = {10,11, 13, 12, 16, 18,
2017-06-03 16:09:00 392
Linux C一站式学习
2018-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人