linux应用编程(线程与进程)
文章平均质量分 81
VClol
退路是留给失败者,想要接近梦想的人,没有退路可言
展开
-
进程与线程的关系
进程与线程的关系1、什么是进程 (1)进程就是程序的一次运行过程,一个静态的可执行程序a.out的一次运行过程就是一个进程。 (2)进程控制块PCB(process control block),内核中专门用来管理一个进程的数据结构。2、多进程调度原理 (1)操作系统同时运行多个进程 解释:比如电脑同时运行上千个进程,参与进程调度,操作系统有一套专门的算法实现进程之间的调度,比如i...原创 2017-11-07 23:13:32 · 246 阅读 · 0 评论 -
select轮询键盘鼠标文件IO(解释在代码中)
#include <sys/types.h>#include <sys/time.h>#include <sys/stat.h>#include <sys/select.h>#include <fcntl.h>#include <stdio.h>#include <errno.h>#include ...原创 2019-07-12 10:44:00 · 252 阅读 · 0 评论 -
fcntl函数功能与实际应用(linux下中断实现、文件分别写与接续写)
fcntl函数功能与实际应用(linux下中断实现、文件分别写与接续写)原型:int fcntl(int fd, int cmd, ... /* arg */ );可以出现如下几种参数使用:int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int fd, int cmd, struct...原创 2019-07-13 13:42:28 · 373 阅读 · 0 评论 -
多个线程同时抢一把锁出现的问题与处理方式
1、线程锁的介绍1.1 创建互斥锁: (1) 静态互斥锁初始化:pthread_mutex_t mutex_x= PTHREAD_MUTEX_INITIALIZER; 此句创建锁后,可以直接使用 pthread_mutex_lock(&mutex_x)和pthread_mutex_unlock(&mutex_x)给临界资...原创 2018-11-08 19:09:14 · 7090 阅读 · 1 评论 -
进程间通信方式总结(适用初学者)
前言:linux的进程间通信概述1、为什么需要进程间通信 (1)进程间通信(IPC)指的是2个任意进程之间的通信。 (2)同一个进程在一个地址空间中,所以同一个进程的不同模块(不同函数、不同文件)之间都是很简单的(很多时候都是全局变量、也可以通过函数形参实参传递) (3)2个不同的进程处于不同的地址空间,因此要互相通信很难。2、什么样的程序设计需要进程...转载 2018-07-19 18:17:50 · 2326 阅读 · 0 评论 -
内核链表分析及使用
1、内核链原理及作用 (1)内核链表默认实现时,有头结点 (2)虽然每个节点多占用一个指针(4个字节),但是可以忽略,双链表在做删除节点和插入节点等操作时,会快很多,比如不需要定义plast,pPrev,去保存可能被断开的节点地址,因为他有双向指针,里面有前前后后所以地址的保存。 (3)内核链表中自己实现了一个纯链表(纯链表就是没有数据区域,只有前...原创 2018-07-16 17:06:22 · 405 阅读 · 0 评论 -
线程创建函数与实例
1 线程常见函数1.1 线程创建于回收(1)pthread_create 主线程用来创造子线程(2)pthread_join 主线程用来等待(阻塞)回收子线程(3)pthread_detach 主线程用来分离子线程,分离后主线程不必再去回收子线程小结:线程函数创建的线程,就是里面函数指针指向的函数体,整个函数是一个线程,里面定义,申请的内存资源...原创 2018-05-13 19:48:30 · 1803 阅读 · 0 评论 -
进程、线程、CPU核数之间的关系(附加select细节)
前言:为什么要开线程?目的(1)是想等一个子程序执行完毕了,然后在继续操作!用启动线程,不然界面和别的进程无法工作,程序完了就完了没有如何效果和后续功能,然后用线程启动然后线程等待,比如摄像头不停的捕获图像,鼠标键盘任何时候输入都有效,开启后CPU会给这个进程分配专用的内存空间核cpu时间资源。(2)其实很像中断函数一样,对一个函数开启线程后,当它处于等待IO发生动作后去执行比如键盘按...原创 2018-05-20 15:08:48 · 25778 阅读 · 6 评论 -
linux应用层到驱动层再到硬件图解(inline)
1 系统整体工作原理 1.1 总体流程图 1.1.1 这里举一个函数例子,比如内核给我们应用层提供的open/read/write等函数指针,这些函数在内核的fs.h中用file_operation(用来操作文件的所有接口)结构体封装,他们只是一个函数指针(用来挂接驱动里的函数实体),实体是具体用来操作硬件的,根据自己的需要写在驱动模块里面。 1.1.2 ...原创 2018-05-10 17:10:37 · 4985 阅读 · 0 评论 -
linux下的信号机制(signel)--持续更新中
1、信号的基本概念 进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。进程通过系统调用signal来指定进程对某个信号的处理行为。2、信号本质是int型数字编号(事先定义好的) 解释:信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据(比如文字,语音等数据),他是内核事先定义好的int数字,调...原创 2018-06-23 17:47:01 · 1036 阅读 · 2 评论 -
deb包的制作(适合刚接触deb的学者)
1、什么是deb包,为什么需要由于了解不全面所以不一定对,写下来一方面方便自己看,另一方面希望可以给刚接触的朋友一点帮助1.1 在学校一般对deb包接触会少一点,但是进入公司后可能就要用到,这到底是个什么呢?(1)可以看看鸟哥的linux私房菜第23章软件安装->23.1软件管理器简介,这个很有必要,因为这会让你知道这个东西的作用个人理解:主要是为了使我们编译制作好的可执行能...原创 2019-10-04 12:46:56 · 4086 阅读 · 0 评论