自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux多线程编程(四)-----读写锁

概述读写锁类似于互斥锁(互斥量),不过读写锁允许更高的并行性,主要体现在读者方面。这种锁有利于读的机会多,写的机会少的共享数据。它可分为以下两种情况:写者竞争到锁资源。在写者加锁,正在写的情况下,所有试图竞争这个锁的读者写者线程都会被阻塞。读者竞争到锁资源。在读写加锁,正在读的情况下,为了体现并行性,当有新读者试图读取并且申请加锁的时候,将被允许。也就是说,一块共享数据可以同时被多个读者读取。但

2017-02-27 18:20:18 1273

原创 Linux进程间关系之守护进程

概念守护进程也称精灵进程,是运行在后台的一种特殊进程。守护进程独立于控制终端并且周期性的执行某种任务或者等待处理某些打算的事件。可认为守护进程目的就是防止终端产生的一些信号让进程退出特点所有的守护进程都没有控制终端,其终端名(TTY)设置为问号(?)。自成会话,自成进程组。不与其他会话或进程组相互关联,干扰。所以一般一个守护进程的进程ID,组ID,会话ID都相同。(自成进程组这点说的也不太严谨,

2017-02-27 16:05:56 4166

原创 Linux进程间关系之进程组,作业,会话与作业控制。

本片博客用到的相关指令fg,bg,jobs,ps等可自行查阅。进程组每个进程除了有一个进程ID之外还有一个进程组ID。每个进程都属于一个进程组。进程组是一个或多个进程的集合。每个进程都有一个唯一的进程组ID。每个进程都有一个组长进程。 组长进程标志:其所属进程组ID等于其进程ID。 进程组就是进程的集合,这些进程并不是孤立的,他们彼此之间或者存在父子、兄弟关系,或者在功能上有相近的联系。每个进程

2017-02-27 13:22:57 1527

原创 Linux信号(Signal)

信号的概念信号是操作系统正常运行一个必不可少的工具。正如我们生活中负责协调交通的红绿灯一样,若没有了红绿灯信号,那岂不是一幅人间大乱的场景。 每个信号都有一个名字,并且大写的英文字母,开头都是“SIG”。我们在Linux系统下可以调用kill -l指令来查看所有信号。 注意上图,所有信号的编号是从1到64,但是没有32,33。所以信号共有62个,我们将前31个信号称为普通信号,后31个称为实

2017-02-24 10:03:35 2106

原创 Linux多线程编程(三)-----生产者与消费者(条件变量,信号量)

Linux多线程编程(一):http://blog.csdn.net/llzk_/article/details/55670172 Linux多线程编程(二):http://blog.csdn.net/llzk_/article/details/55805851 在前两篇文章中我们探讨了线程的概念,同步与互斥概念以及互斥锁。本文将剖析一种操作系统中重要的模型—–生产者与消费者。其中会涉及条件变量

2017-02-22 21:02:27 4301

原创 Linux多线程编程(二)-----同步与互斥

Linux多线程编程(一):http://blog.csdn.net/llzk_/article/details/55670172 由上篇博客我们可以知道,多个线程是共享同一份内存的。这就意味着这么多线程共享同一份数据资源。这时就很可能出现多个线程因竞争同一份资源而发生冲突的问题。就算从程序不挂掉,运行结果也不会太正确。 例如,现在有两个线程A,B分别要对一个数据a = 5执行加1操作。正常来说

2017-02-19 17:10:40 1558

原创 Linux多线程编程(一)

什么是线程先来举一个我们生活中的实例,我们都使用过一个强大的软件—迅雷。那你必然知道迅雷有一个边下边播的功能,我们在下载的时候还能同时进行观看。这就是一个多线程实例。 线程是进程内部的执行分支。打开迅雷软件—–向系统内核索要资源,启动“迅雷”进程,。开始下载一个电影—–从索要的资源中调度分配一部分资源,启动下载线程。开始播放电影—–再索要的资源中调度分配一部分资源次从,启动播放线程。由上我

2017-02-18 19:25:22 2393 6

原创 Linux下的静态库与动态库

库在windows和Linux下都存在着大量的库,库是什么呢?本质上来说,库时一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有什么用呢?我们通常将一些公用函数写成函数库,所以库是别人写好的,现有的,成熟的,可以服用的代码,你可以使用但要必须得遵守许可协议。在我们现实开发过程中,不可能每一份代码都从头编写,当我们拥有库时,我们就可以直接将我们所需要的文件链接到我们的程序中。可以为我们节省大

2017-02-18 09:17:13 14160 6

原创 Linux进程间通信之信号量

信号量信号量,我们可以理解为一种计数器,记录的是可共享资源的数量。信号量主要被用于协调多个进程对同一共享资源的占用访问。 如果一个进程想要获得并使用共享资源,需经历以下过程:测试查看控制该共享资源的信号量。若该信号量的值大于0,则进程可以使用该资源。资源分配给该进程以后,信号量的值减1。表示该资源分配出去到了一个单位。若该信号量的值等于0,则该进程将被挂起,进入休眠等待状态。直到资源被释放,

2017-02-16 21:52:09 1020

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除