
linux
文章平均质量分 64
Bushoter
在?来一起学习?
展开
-
Ubuntu系统设置记录
取消开机密码首先进入系统设置-用户账户打开自动登录关闭休眠模式首先,进入系统设置: 选择Brihtness and Lock然后修改成如下形式:——未完待续——原创 2021-09-20 14:24:54 · 296 阅读 · 0 评论 -
Ubuntu16.04下网卡DHCP配置
Ubuntu16.04有时会出现网卡未被激活、网卡没有自动分配ipv4地址的情况解决办法:激活网卡 # ifconfig eth0 up打开 vim /etc/network/interfaces文件进行配置保存退出,重启网络:sudo /etc/init.d/networking restart配置成功下面介绍ifconfig的使用方法,通常可以用它来查看、修改网卡信息Linux命令--ifconfig进行网卡配置 语 法:ifconfig [网络设备]...原创 2021-09-12 17:51:39 · 2421 阅读 · 0 评论 -
UDP可靠传输的实现(KCP)
1. 如何做可靠性传输?ack机制、重传机制、序号机制、重排机制(网络包乱序)、窗口机制2. 如何选择TCP和UDP?当实时性要求高,选择UDP:直播、音视频通话、游戏......使用短连接时:物联网传感器上报数据,采集完就休眠,采用UDP可以省电 大规模服务器心跳包设计,集中服务器监测,用来监控十万台服务器3. UDP如何可靠?KCP协议的优势是什么?可靠性UDP为了解决延迟问题 流量 = 带宽,流速 = 延迟 可靠+兼容速率——加序号TCP的超时重传间隔RT...原创 2021-07-18 21:19:46 · 1629 阅读 · 4 评论 -
C++线程池的原理与实现
线程池是一种多线程处理形式,将任务添加到队列,创建线程后自动启动这些任务降低资源消耗。线程池可以避免频繁的创建线程和销毁线程,线程池中线程可以重复使用 提高响应速度。线程池省去线程创建的这段时间 提高线程的可管理性。线程池可以对线程进行统一分配、调优和监控线程池主要分为三个部分:任务队列:存储需要处理的任务,由工作的线程来处理这些任务(函数地址)通过线程池提供的 API 函数,将一个待处理的任务添加到任务队列,或者从任务队列中删除 已处理的任务会被从任务队列中删除 线程池的使用者,调用转载 2021-07-18 16:49:05 · 828 阅读 · 0 评论 -
阿里云被攻击了>>>>>>>工作记录
太伤心了,我的测试服务器居然被挖矿程序攻击了贫穷的我哪有什么矿??挖矿程序,我恨你不仅掏空了我的钱包,hai'tao'kong'le原创 2021-06-14 12:46:11 · 288 阅读 · 0 评论 -
Redis原理及实现细节(1)命令和数据结构
Redis(Remote Dictionary Service)远程字典服务,内存数据库,kv数据库,数据结构数据库http://redis.cn/commands.html1. 应用:朋友圈点赞数、评论、点击数(hash)记录朋友圈说说列表(排序)、快速显示(list)记录文章的标题、摘要、作者和封面,列表页显示(hash)朋友圈点赞用户ID、评论ID、显示去重计数(zset)缓存热点数据,减少数据库压力(hash)朋友圈说说id(计数器string)集合交并差记录好友原创 2021-06-03 11:32:55 · 241 阅读 · 0 评论 -
select/poll/epoll多路IO复用
#include <sys/select.h>select()函数用于监视文件描述符的变化情况——读写或是异常,使用select可以完成非阻塞的IO操作。(select本身是阻塞的)关键:利用select把文件描述符的监视工作交给内核态进行处理。...原创 2021-02-01 14:07:42 · 293 阅读 · 0 评论 -
C++并发编程 线程间的数据共享
1. 为什么要并发?分离关注点、提升性能2. 何时不用并发?收益比不上成本。启动线程存在固有开销 线程需要独立的堆栈空间 运行线程时,操作系统每次上下文切换都需要耗费时间3. C++11支持的并发:全新的线程感知内存模型,以及管理线程、保护共享数据、线程同步和原子操作等4. 线程:启动线程 、等待线程结束join() 或自主运行detached() (当线程退出时, 相关资源的能够正确回收)5. 线程间共享数据条件竞争(race condition):不变量遭到破坏(比如双向...原创 2020-10-15 21:17:23 · 567 阅读 · 0 评论 -
2020-12-23高性能网络编程笔记
网速一直在提升,但单机网络IO的能力有限,传统的网络业务(IP层以下)需要一套软件架构的高性能IO开发框架网卡IO和内核的瓶颈传统的收发报文方式都必须采用硬中断来做通讯,每次硬中断大约消耗100微秒,这还不算因为终止上下文所带来的Cache Miss。 数据必须从内核态用户态之间切换拷贝带来大量CPU消耗,全局锁竞争。 收发包都有系统调用的开销。 内核工作在多核上,为可全局一致,即使采用Lock Free,也避免不了锁总线、内存屏障带来的性能损耗。 从网卡到业务进程,经过的路径太长,有些其实原创 2020-12-26 17:22:17 · 241 阅读 · 0 评论 -
Linux网络编程——UDP Socket
UDP socket编程的知识点总结Udp是无连接的、不可靠的传输协议,面向消息的数据传输协议 与TCP相比,有两个致命的缺点,一是数据包容易丢失,二是数据包无序 建立在udp上层的协议,需要自己定义流控制、超时、重传等。 进行udp传输有两个问题,一个是数据包大小,一个是发数据时间间隔,这两个因素是发送端影响udp丢包率的主要因素,而丢包率直接影响了传输效率 UDP没有真正的发送缓冲区,因为它是不可靠无连接的,不需要保存应用进程的数据备份,应用进程的数据沿着协议栈往下传递,拷贝到内核...原创 2020-12-04 17:27:39 · 866 阅读 · 0 评论 -
VScode远程调试linux——请求被拒绝的解决办法
1. 确保本机能够ssh远程连接linux2. 确保本机和linux均安装并开启了ssh服务Windows:应用-应用和功能-可选功能-OpenSSH客户端安装 Linux:ssh服务器安装sudo apt-get install openssh-server(被远程控制A) ssh客户端安装 sudo apt-get install openssh-client(远程控制B) 查看ssh服务:service ssh status...原创 2020-08-06 11:09:52 · 3737 阅读 · 0 评论 -
误删除/var/lib/dpkg的解决方案
上一篇介绍了apt-get update更新出错的解决方案当List终于Done了以后...我们在下载需要的软件时,可能会出现找不到/var/lib/dpkg的情况E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/), is another proces原创 2020-06-21 16:40:53 · 1963 阅读 · 0 评论 -
Ubuntu16.04之sudo apt-get update报错终极解决方案
错误起源想要为新建的ubuntu16.04虚拟机安装一个VLC播放器,于是有了如下操作: sudo add-apt-repository ppa:n-muench/vlc sudo apt-get update sudo apt-get install vlc一顿操作猛如虎,apt-get update就报了超多错,出现了如下字样:Reading package lists... Error!解决方案我在网上找到很多解决办法,统统尝试了一遍:方法1:更新软件源----原创 2020-06-21 16:15:10 · 6322 阅读 · 3 评论 -
QT学习之路——添加资源、对话框、界面布局
今天学习了QT,利用拖拽方法进行UI界面设计资源文件添加到项目中:将图片文件拷贝到项目位置下(右键mainwindow.cpp显示包含的目录)右键项目->添加新文件->QT->QT Resourse File->给资源文件起名为res自动生成res.grc->open in editor 编辑资源->添加前缀、添加文件使用方法: “:+前缀名+文...原创 2020-05-04 18:59:12 · 750 阅读 · 0 评论 -
QT学习之路——菜单栏、工具栏、状态栏、锚接部件、核心部件
菜单栏最多有一个:QMenuBar * bar = MenuBar(); //创建菜单栏setMenuBar(bar) //显示菜单栏QMenu * fileMenu = bar->addMenu("文件") //创建菜单QAction *newAction = fileMenu0>addAction("新建"); //创建菜单项fileMenu->ad...原创 2020-05-03 20:08:20 · 717 阅读 · 0 评论 -
QT的学习之路——新建打开关闭窗口、按钮控件、lambda表达式、信号与槽
新建窗口:QWidget *newwidget = new QWidget;新建按钮:#include <QPushButton> QPushButton *btn = new QPushButton("open", this);设置按钮的父母:btn->setParent(this); 这一步必须有,这样才能正常显示、析构给按钮设置名字和样式: ...原创 2020-05-03 18:36:59 · 1001 阅读 · 0 评论 -
2020/4/18多线程写链表时的报错
报错内容:double free or corruption这个报错的原因是:1、多次释放同一内存区,需要检查代码,是否出现了对同以内存区释放两次以上的地方。2、内存区溢出,malloc申请的内存区大小有限,如果操作不当,要存储的数据大于内存区大小,在free的时候也会检测出来,报这个错误*** Error in `/tmp/server/cmake-build-debug/ser...原创 2020-04-20 09:18:01 · 516 阅读 · 0 评论