Linux
文章平均质量分 69
Polymer to C++
重视细节,但不要沉迷于细节
展开
-
【Linux】进程(二)Linux进程地址空间、写时拷贝
目录原创 2021-11-19 23:45:34 · 794 阅读 · 0 评论 -
【Linux】线程池与原语操作
目录原创 2021-08-09 17:30:47 · 195 阅读 · 0 评论 -
【Linux】进程(一)Linux下的进程与线程
什么是LWP?LWP与pthread_create创建的线程之间的关系轻量级进程ID与进程ID之间的区别原创 2021-07-28 17:58:33 · 409 阅读 · 0 评论 -
【Linux】主线程退出对子线程的影响
今天在看一些关于线程方面的文章时,觉得这篇文章讲得很不错,对于初学者对于线程的理解很有帮助,一方面想自己保存起来,另一方面希望更多人能看到。原文出处:简单了解C语言中主线程退出对子线程的影响对于程序来说,如果主进程在子进程还未结束时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程结束后会由init进程来回收该子进程。那如果是把进程换成线程的话,会怎么样呢?假设主线程在子线程结束前就已经退出,子线程会发生什么?在一些论坛上看到许多人说子线程也会跟着退出,其实这是转载 2021-07-26 15:17:00 · 3075 阅读 · 3 评论 -
【面试题】如何描述线程不安全现象?
==假设场景假设有一个CPU,两个线程:一个线程A,一个线程B;线程A和线程B都想对全局变量 i 进行++操作2.假设线程A先运行,但是线程A将 i 的值读到寄存器之后,就被线程切换了。(线程A的程序计数器和上下文信息分别保存了下一条要执行的汇编指令和寄存器中已经保存的内容)3....原创 2021-07-17 08:58:10 · 137 阅读 · 0 评论 -
【Linux】文件描述符的理解、重定向原理
目录1. 文件描述符的本质2. 重定向原理1. 文件描述符的本质我们知道,当一个程序在运行时,会挂起一个task_struct结构体,保存着描述该进程的信息,包括2. 重定向原理原创 2021-07-10 21:58:00 · 459 阅读 · 0 评论 -
【Linux】gcc/g++的使用(下)gdb调试
注意:在发布调试版本和release版本时,编译选项(优化级别、链接库等)应尽可能保持一致。l(list) 行号。enable 断点号。原创 2021-06-21 21:33:07 · 800 阅读 · 0 评论 -
【Linux】编译器gcc/g++的使用(上)程序编译的过程
目录1. gcc编译程序的四个过程1.1 预处理(进行宏替换)1.2 编译(生成汇编)1.3 汇编(生成机器可识别代码)1.4 链接(生成可执行文件或库文件 )2. 动态链接与静态链接(函数库)3. gcc选项1. gcc编译程序的四个过程格式 gcc [选项] 要编译的文件 [选项] [目标文件]1.1 预处理(进行宏替换)预处理功能主要包括宏定义,文件包含,条件编译,去注释等。预处理指令是以#号开头的代码行。实例: gcc –E test.c –o test.i选项“-E”,该选项的作原创 2021-06-21 19:18:15 · 168 阅读 · 0 评论