select and poll代码示例:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/select epoll代码示例:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/Tcpepollser……
-
-
-
-
-
-
-
-
-
-
-
-
-
代码仓库地址:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/TestThread3 学习本文建议参考上一篇文章:http://www.tgwttt.xyz/?p=289 现代C++开发中,线程的使用越来越普遍。虽然C++11及以后标准提供了std::th……
来自分类:linux -
1. Linux线程概念 什么是线程? 通俗的来说:1.概念角度,感性的理解线程教材: 内存资源,cpu资源进程内核数据结构+代码和数据(执行流)线程:是进程内部的一个执行分值(执行流)内核和资源:进程:承担分配系统资源的基本实体。线程:cpu调度的基本单位。 官方的语言来说:在⼀个程序⾥的⼀个执⾏路线就叫做线程(th……
来自分类:linux -
本文接上篇文章:http://www.tgwttt.xyz/?p=271 保存信号 信号其他相关常⻅概念 • 实际执⾏信号的处理动作称为信号递达(Delivery) • 信号从产⽣到递达之间的状态,称为信号未决(Pending)。 • 进程可以选择阻塞 (Block )某个信号。 • 被阻塞的信号产⽣时将保持在未决状态……
来自分类:linux -
1.Linux信号的基本概念 Linux 进程信号(Signal)是一种软件中断机制,用于通知进程发生了某个事件。 举例说明: 上面代码大家都知道是一个死循环,当我们运行时,我们按下ctrl+c,程序就会停止。这是因为前台进程因为收到信号,进⽽引起进程退出 每个信号都有⼀个编号和⼀个宏定义名称,这些宏定义可以在sign……
来自分类:linux -
仓库地址https://gitee.com/tgwTTT/linux-learning-dai/tree/master/Shm 一、共享内存的原理与OS管理 共享内存是操作系统提供的一种高效进程间通信(IPC)机制。所有的底层管理工作都由操作系统自动完成,包括内存分配、映射、权限控制和资源回收。我们只需要通过系统调用完……
来自分类:linux -
代码仓库:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/fifotest 匿名管道: 1.只能用于具有血缘关系的进程进行进程间通信(常用于父子) 思考:如果两个进程不相关,改如何进行通信 如:进程a打开了一个文件a 进程b也打开了文件a 内核中,操作系统……
来自分类:linux -
具体代码在gitee仓库:https://gitee.com/tgwTTT/linux-learning-dai/tree/master/processPool 一、背景与需求 在高并发服务器或批量任务处理场景下,频繁创建和销毁进程会带来较大的系统开销。进程池通过预先创当然可以!下面是一篇更口语化、易读的博客,结合你的……
来自分类:linux -
什么是进程间通信 进程间通信(ipc,inter-process communication)是指运行在同一台计算机上的多个进程之间进行数据交换和通信的技术。由于每个进程都有自己的地址空间,它们无法直接访问彼此的数据,因此需要通过特定的机制来实现通信。ipc是操作系统和多进程编程中的一个重要概念,广泛应用于分布式系统,……
来自分类:linux -
但是我们在编译时又找不到头文件了所以我们需要使用已下命令: g++ usercode.c -o -I ./lib/include/ -L ./lib/mylib/ -l myc 系统默认头文件位置:/user/lib 系统默认库文件位置:/lib64 动态库 动态库和静态库的原理基本一致 但是在编译中,需要: g++ ……
来自分类:linux -
一:进程创建 fork()函数: #include pid_t fork(void) 进程调用fork,将控制转移到内核的fork代码后,内核做: 1.分配新的内存块和内核数据内容拷贝给子进程 2.将父进程部分数据内容拷贝给子进程 3.添加子进程到系统进程列表当中 4.fork返回,开始调度器调度 返回值: 子进程返回……
来自分类:linux -
如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪⾥,但是照样可以链接成功,⽣成可执⾏程序,原因就是有相关环境变量帮助编译器进⾏查找。 环境变量通常具有某些特殊⽤途,还有在系统当中通常具有全局特性 命令行参数 在我们运行程序时我们是可以带参数的 实际上我们是带了6个参数,即./te……
来自分类:linux -
UID:用户唯一标识 PID:进程id PPID:父进程id PRI:进程优先级(默认80) NI:优先级修正数据(nice) 真实优先级:PRI(默认)+NI nice范围[-20,19] linux优先级范围[60,99] 优先调整操作 启动进程时设置 nice 值(nice 命令) nice -n 修改已运行进程……
来自分类:linux -
操作系统包括: 内核:进程管理,内存管理,文件管理,驱动管理 其他程序:函数库,shell程序 设计os的目的:对上,为用户程序(应用程序)提供一个良好的执行环境 对下,与硬件交互,管理所有软硬件资源 系统调用: 操作系统要向上提供对应的服务,不相信任何用户,本质是用户与操作系统的的交互 库函数和系统调用是上下层的关系……
来自分类:linux -
会不会写makefile,从⼀个侧⾯说明了⼀个⼈是否具备完成⼤型⼯程的能⼒ ⼀个⼯程中的源⽂件不计数,其按类型、功能、模块分别放在若⼲个⽬录中,makefile定义了⼀系列的规则来指定,哪些⽂件需要先编译,哪些⽂件需要后编译,哪些⽂件需要重新编译,甚⾄于进⾏更复杂的功能操作 makefile带来的好处就是⸺“⾃动化编译……
来自分类:linux -
库是代码文件编译的最后一步链接的重要组成,库文件又分动态库和静态库库是一套方法和数据集,为我们开发提供最基本的保证(基本接口,功能,加速我们的二次开发) 1.动态库linux(.so),windows(.dll) 2.静态库linux(.a),windows(.lib)例如下面是c++简单代码所依赖的库 动态库:里面保……
来自分类:linux -
vim的使用: wim 的三种模式: 命令模式 shift+$:直接定位到行末尾 h:左 j:下 k:上 l:右 w、e:以单词为单位向后移动 b:以单词为单位向前移动 shift+g:移动到最后一行 数字+w/b:向目的方向移动数字位 插入模式(i) 底行模式 set number:显示行数 set nonu:取消行……
来自分类:linux -
-
最近博主在进行linux的学习故向大家分享一下linux中常见的指令。 pwd:当前所处路径 mkdir:创建目录 clear:清屏 ls:显示目录文件 ls命令: -a 列出所有文件包括以.开头的隐形文件 -d 将目录像文件一样显示,而不是显示其下文件 -l 列出文件的详细信息 (多个选项可以一起写不管是什么形式 在……
来自分类:linux