自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux系统编程 | 互斥量mutex

互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。互斥量的具体实现方式为:每个线程在对共享资源操作前都尝试先加锁,成功加锁后才可以对共享资源进行读写操作,操作结束后解锁。互斥量不是为了消除竞争,实际上,资源还是共享的,线程间也...

2018-11-30 23:12:40 366

原创 Linux系统编程 | 线程属性

在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性。一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题。但是,有时项目中我们对线程会有些特殊的要求,比如修改线程栈的大小,直接调用线程的库函数无法满足需求,在这种情况下我们可以直接对线程属性进行设置。类型pthread_attr_t是一个结构体,主要包括如...

2018-11-29 19:45:28 290

原创 Linux系统编程 | 线程原语(2)

pthread_join函数函数原型:int pthread_join(pthread_t thread, void **retval);函数返回值:成功:0;失败:错误号函数作用:阻塞等待指定线程退出,并获取线程退出状态。其作用,对应进程中的waitpid() 函数。函数参数:thread:等待的线程ID;retval:存储线程结束状态。由于pthread_e...

2018-11-29 19:44:16 267

原创 Linux系统编程 | 线程原语(1)

pthread_create函数函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void (start_routine) (void *), void *arg);函数作用:创建一个新线程。 其作用对应于进程中的fork()函数;返回值:成功:0;失败:错误号;函数参数:t...

2018-11-28 19:43:53 338

原创 Linux系统编程 | 信号捕捉

前面我们学习了信号产生的几种方式,而对于信号的处理有如下几种方式:默认处理方式; 忽略; 捕捉。信号的捕捉,说白了就是抓到一个信号后,执行我们指定的函数,或者执行我们指定的动作。下面详细介绍两个信号捕捉操作参数:signal和sigaction。signal函数函数原型:sighandler_t signal(int signum, sighandler_t handler)...

2018-11-27 20:47:52 320

原创 Linux系统编程 | 时序竞态

Linux系统编程 | 时序竞态时序竞态什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的。但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态。pause函数函数原型:int pause(void);函数作用:进程调用pause函数时,会造成进程主动挂起(处于阻塞状态,并主动放弃CPU),并且等待信...

2018-11-26 20:14:25 390

原创 Linux系统编程 | 线程同步概念

同步概念同步,指对在一个系统中所发生的事件之间进行协调,在时间上出现一致性与统一化的现象。但是,对于不同行业,对于同步的理解略有不同。比如:设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致,等等。但是,在软件编程或者通信行业中所说的同步与生活中大家印象中的同步概念...

2018-11-25 21:53:48 276

原创 Linux系统编程 | 线程概念

什么是线程在早期,unix其实是没有线程的概念,因为它的进程已经做的足够优秀了。但是,随着操作系统行业的发展,其他操作系统,比如windows,都有了线程的存在。于是,很多开发人员就呼吁unix也提供线程功能。unix为了顺应开发人员的呼吁,于是也开发出线程。但对于Unix/linux而言,线程不是一个全新的东西,而是直接拿进程过来改改,将进程改头换面,就变成了线程。其本质依然是进程。...

2018-11-25 19:43:25 276

原创 Linux系统编程 | 信号集操作函数

先来回顾一下未决信号集是怎么回事。信号从产生到抵达目的地,叫作信号递达。而信号从产生到递达的中间状态,叫作信号的未决状态。产生未决状态的原因有可能是信号受到阻塞了,也就是信号屏蔽字(或称阻塞信号集,mask)对应位被置1。阻塞信号集和未决信号集均是由内核维护的,整个过程如下图示:img我们有时需要屏蔽某个信号,就需要去修改阻塞信号集。那么,我们该如何修改阻塞信号集?系统提供的一个方...

2018-11-23 22:11:32 314

原创 Linux系统编程 | 信号入门

信号的概念在我们的生活中,信号随处可见。比如,田径比赛中的发令枪,就是给运动员发出起跑的信号;交通路口的红绿灯,就是给我们发出允许通过或禁止通过的信号。这些信号都有共同的特点: 简单; 携带少量信息; 满足特定条件才发送。 信号是信息的载体,在Unix/Linux环境下,是一种古老、经典的通信方式,对于现代Unix/Linux来说,依然是非常重要的IPC(进...

2018-11-22 19:22:23 285

原创 Linux系统编程 | 共享内存之mmap

共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所修改的内容,反之亦然。mmap函数函数原型:void *mmap(void *adrr, size_t le...

2018-11-21 20:26:06 397

原创 Linux系统编程 | 管道

▋1. 管道的概念管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。1.1 管道本质管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K; 管道创建以后会产生两个文件描述符,一个是读端,另一个是写端; 管道里的数据只能从写端被写入,从读端被读出;1.2 管道原理管道是内核的一块缓冲区,更具体一些,是一个环形队列。数据从...

2018-11-20 22:40:33 368

原创 Linux系统编程 | 信号的产生

终端按键产生信号ctrl + c发送2号信号SIGINT,将中止当前进程。SIGINT的“INT”是interrupt的意思;ctrl + z发送20号信号SIGTSTP,暂停/停止当前进程。SIGTSTP中的“T”是terminal的意思。进程收到此信号后,将由当前转入后台,可用ps aux找到它。比如说,我们使用vim编写代码时,需要在vim以外处理一些事情,但又不想退出v...

2018-11-19 19:47:37 458

原创 Linux系统编程 | 进程间通信概述

1. 进程间通信的概念我们知道,在linux环境下,进程与进程之间是相互独立的,每个进程各自都有不同的用户地址空间。一般而言,进程间的进程空间是不能相互访问的。但在很多情况下,进程与进程之间是需要进程相互通信的,一起来完成某项特定的功能需求。在linux环境下,进程间通信(Inter Process Communication,IPC)是通过内核来完成的。2. 进程间通信的应用场景...

2018-11-18 12:24:51 301

原创 Linux下用户的创建与删除

我们在Linux下创建用户主要有两种方式:adduser和useradd,它们的区别以及主要用法如下:adduseradduser的用法很简单,只需adduser+username即可,如下:sudo adduser alvin这个命令其实是个perl脚本,它的底层还是调用useradd命令。网上很多教程说它会进行人机交互,但现在有些发行版(比如centOS)其实已经改进了,无...

2018-11-17 16:56:30 48598

Linux操作系统教学视频

Linux操作系统教学视频,讲述Linux的基本操作,适合初学者入门

2018-04-30

QT界面开发2016版视频

QT界面开发2016版视频,讲得比较通俗易懂,比较适合初学者。

2018-04-30

国嵌视频课件ppt(01-05全)

国嵌视频课件ppt(01-05全),完整版,适合新手入门学习,比较基础

2017-11-05

张正友和tasi的标定源程序

张正友和tasi的标定源程序,欢迎大家一起学习交流

2013-06-03

自己编写的直线拟合程序

自己编写的程序,一起学习交流,高手多多指导!!

2013-01-25

空空如也

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

TA关注的人

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