Linux
文章平均质量分 52
swings_ss
C++后台、计算机视觉
展开
-
将VIM配置为IDE
前言我们在服务器上做开发时,可以选择使用字符界面或者GUI界面。由于远程GUI界面比较吃资源,因此其流畅度和本地操作系统的GUI界面相差甚远,使用体验往往不尽人意。因此,一般首选字符界面做开发,VIM 编辑器是字符界面下的一款神器。VIM 编辑器在配置好各种插件后,可以媲美 Windows 下功能强大的 IDE 而又不显得臃肿。本文的配置非常方便快捷,Ubuntu 下只需通过 apt 安...原创 2020-01-09 20:46:54 · 1514 阅读 · 1 评论 -
pthread_join()和pthread_detach()的区别
pthread_join()有时候我们想在一个线程中等待另一个线程结束,pthread_join()则为我们提供了这个功能。例如,我们在main线程中创建了子线程,需要先等待子线程退出,最后才从main函数退出。代码如下:void* threadFun(void* arg){ printf("child thread\n");}int main(){ pthr...原创 2018-08-30 23:24:10 · 2830 阅读 · 0 评论 -
Linux环境下进程pid、线程tid和线程pid
一、进程pid进程pid由getpid()函数获取,在整个系统内是唯一的二、线程tid线程tid由pthread_self()函数获取,在进程内是唯一的,但是在不同进程内不唯一三、线程pid线程pid由syscall(SYS_gettid)获取,在Linux中POSIX线程库实现的线程其实也是一个进程(LWP)。既然线程实际上也是一个“进程”,那么线程也会有一个pid,这个线程pid在整...原创 2019-01-27 00:00:24 · 3483 阅读 · 0 评论 -
GDB常用命令
命令命令缩写说明listl显示多行源代码breakb设置断点infoi描述程序的状态runr开始运行程序displaydisp跟踪查看某个变量,每次停下来都显示它的值steps执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句nextn执行下一条语句,不会进入函数调用内部printp打...原创 2019-03-05 22:06:39 · 272 阅读 · 0 评论 -
服务器多进程、多线程和事件驱动模型
多进程模型、多线程模型多进程模型每接受一个连接就fork一个子进程,在该子进程中处理该连接的请求特点是多进程占用系统资源多,进程切换的系统开销大,Linux下最大进程数有限制,不利于处理大并发多线程模型每接受一个连接就create一个子线程,利用子线程处理这个连接的请求Linux下有最大线程数限制(进程虚拟地址空间有限),进程频繁创建和销毁造成系统开销,同样不利于处理大并发...原创 2019-03-13 12:09:49 · 596 阅读 · 0 评论 -
多服务器显卡使用状态监控工具实现
一、前言实验室是做计算机视觉的,拥有几台服务器,每台服务器上有1到8张数量不等的显卡,用于同学们跑深度学习算法。每次到了会议/期刊截稿前,服务器都人满为患,大家各种抢显卡用(同时占用多张显卡能提高程序的并行性,训练模型花费时间变少),旱的旱死涝旳涝死,有的同学占了十几张卡,而有的同学天天蹲守服务器也等不到一张空闲的卡。于是,产品经理(其实是实验室大师兄)提了个需求,让我写个显卡监控工具,用于监控...原创 2019-03-18 22:29:31 · 1468 阅读 · 0 评论 -
libevent核心原理
Libevent 是一个轻量级的高性能网络库,事件驱动,基于 Reactor 模式。对 Libevent 源码的阅读可围绕事件管理展开:Libevent 对三类事件源进行了统一,用 event 结构体表示,每个 event 实例表示一个事件。同时监听多个事件(比如监听多个 socket 上的可读事件),必然会有多个 event 实例,对这些 event 实例进行管理需要特定的数据结构,Li...原创 2019-07-12 17:47:12 · 1991 阅读 · 0 评论