11 2022 档案
摘要:pthread简介 POSIX Threads简称Pthreads,此标准定义了一套C语言的类型,函数和常量。定义在pthread.h头文件和一个线程库里,大约有100多个API,可以分为4大类: 线程管理:包括线程创建(create),线程分离(detach),线程连接(join)及设置和查询线程
阅读全文
摘要:线程的基本元素 线程的常见的基本操作 线程的创建 线程的终止 线程之间的同步 线程的调度 线程当中的数据管理 线程与进程之间的交互 进程与线程之间共享一些内核数据结构 已经打开的文件描述符 当前工作目录 用户id和用户组id 全局数据段的数据 进程的代码 信号以信号处理函数 线程所独有的 线程的ID
阅读全文
摘要:1.核心数据结构 时间触发型事件结构体 // eos定时器事件 typedef struct eos_event_timer { eos_u32_t topic : 13; // 事件主题 eos_u32_t oneshoot : 1; // 是否单次触发 eos_u32_t unit : 2; /
阅读全文
摘要:为什么要有异步I/O 异步IO相比同步IO不会阻塞当前程序的执行,可以继续向下执行。即当应用程序发起一个IO操作后,调用者不会立刻得到结果,而是在内核完成IO操作后,通过信号或回调来通知调用者。 信号驱动I/O 信号驱动IO是异步IO的一种实现,在异步IO中,当文件描述符上可以执行I/O操作时,进程
阅读全文
摘要:什么是IO多路复用 什么是IO多路复用:单线程或单进程同时检测若干文件描述符是否可以执行IO操作的能力。 使用场景: 应用程序需要处理来自多条事件流中的事件,比如web服务器入nginx,需要同时处理来自N个客户端的事件。 逻辑控制流在时间上的重叠叫做并发。 传统方法是使用多线程或多进程来处理,但是
阅读全文
摘要:epoll原理与应用 介绍 epoll - I/O event notification facility 实现处理tcp请求,为一个连接对应一个线程,在高并发的场景,这种多线程模型于epoll相比就相形见绌了。epoll是linux2.6内核的一个新的系统调用,在设计之初,就是为了替代select
阅读全文
摘要:检查安装gdb 打开终端输入 gdb -v gdb已安装log: zx@zx-PC:~/Desktop/codes$ gdb -v GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundat
阅读全文
摘要:默认python版本替换 1.测试当前默认python版本 user@user-jwq# python Python 2.7.18 (default, Jul 1 2022, 12:27:04) [GCC 9.4.0] on linux2 Type "help", "copyright", "cre
阅读全文
摘要:安装tcpdump Ubuntu下安装命令: sudo apt install tcpdump Arm嵌入式linux下: 下载tcpdump源码包,使用交叉编译链编译后放入Arm板中 (tcpdump下载及交叉编译过程待补充) tcpdump命令格式介绍 tcpdump语法: tcpdump [
阅读全文
摘要:在C语言中,函数库分为两种类型,一种是静态库(库程序是直接注入目标程序,不分彼此,库文件通常以.a结尾),另一种为动态库(库程序是在运行目标程序时加载,库文件通常以.so结尾)。 文件到可执行文件的编译过程: 静态库 VS 动态库 静态库特点: 静态库的代码在编译的过程中就已经载入可执行文件中,所以
阅读全文
摘要:# 一、信号的概念 ## 1.信号的基本概念 软中断信号(signal)用来通知进程发生了**异步事件**。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号只是用来通知进程发生了什么事件,并不给进程传递任何数据。 收到信号的进程
阅读全文
摘要:Map和Multimap STL提供的Map和Multimap是一种关联式容器,将key/value pair(键值/实值 对组)当做元素,进行管理。它们可以根据key的排序准则自动将元素排序。Multimap允许重复元素,map不允许。 Map和Multimap结构: 在使用map和multima
阅读全文