09 2022 档案

摘要:四种强制转换 const_cast 去除指针或引用的const属性 什么场景会用 1《effective c++》第三条 当要写一个operator[]操作符重载,他会不断循环调用自己,所以先static_cast<const xxx*>(*this),来强制调用const operator[]函数 阅读全文
posted @ 2022-09-25 15:30 atomxing 阅读(41) 评论(1) 推荐(0) 编辑
摘要:git rebase rxx 1.多个commit合并 2.变基 把提交的基 改变 端口怎么看,tcp udp怎么看,不能用怎么查(占用,防火墙) lsof -i:端口号 可以看端口(list open files) netstat -tunlp 可以看端口、tcp、udp https://blog 阅读全文
posted @ 2022-09-22 22:09 atomxing 阅读(16) 评论(0) 推荐(0) 编辑
摘要:异步同步阻塞非阻塞 一个典型的网络IO接口调用,分为两个阶段,分别是"数据就绪" 和 "数据读写",数据就绪阶段分为阻塞和非阻塞,表现得结果就是,阻塞当前线程或是直接返回。同步(就是要自己定时去看有没有好)表示A向B请求调用一个网络IO接口时(或者调用某个业务逻辑API接口时),数据的读写都是由请求 阅读全文
posted @ 2022-09-18 11:09 atomxing 阅读(18) 评论(1) 推荐(0) 编辑
摘要:阻塞/非阻塞、同步/异步(网络IO) 典型的一次IO的两个阶段是什么?数据就绪 和 数据读写 数据就绪:根据系统IO操作的就绪状态 阻塞非阻塞 数据读写:根据应用程序和内核的交互方式 同步异步 陈硕:在处理 IO 的时候,阻塞和非阻塞都是同步 IO,只有使用了特殊的 API 才是异步 IO。 一个典 阅读全文
posted @ 2022-09-16 19:22 atomxing 阅读(128) 评论(0) 推荐(0) 编辑
摘要:字节序、ip地址和整数转换、tcp/ip通信 0706笔记就记了,但是具体是哪个函数遗忘了,赶紧来复习下 重点:0916面试问道了,ip地址和整数怎么转换 /* #include <arpa/inet.h> // p:点分十进制的IP字符串,n:表示network,网络字节序的整数 int inet 阅读全文
posted @ 2022-09-16 19:12 atomxing 阅读(33) 评论(1) 推荐(0) 编辑
摘要:线程 线程概念 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机 制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共 享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传 统意义上的 UNIX 进程只是多线 阅读全文
posted @ 2022-09-16 19:09 atomxing 阅读(67) 评论(0) 推荐(0) 编辑
摘要:多线程调试 在VC上面对多程序的调试比较简单。如果想要对程序进行调试的话,首先F10,开始运行程序。其次,我们需要等线程创建之后才能设置断点,不然我们看到的程序只有main函数一个thread。 a)单击【Debug】,选择【threads】,那么我们就可以开始多线程调试了; b)如果需要对某一个t 阅读全文
posted @ 2022-09-15 18:35 atomxing 阅读(50) 评论(0) 推荐(0) 编辑
摘要:C++空指针可以调用类成员函数,但是【不能调用】类中的【虚函数】 一个对象的指针可以调用它的成员函数和虚函数, 那么如果一个指向空nullptr的指针,能不能调用它的成员函数和虚函数。 ``` #include<iostream> using namespace std; class A { pub 阅读全文
posted @ 2022-09-13 22:19 atomxing 阅读(359) 评论(0) 推荐(0) 编辑
摘要:事务看起来感觉简单,但是要实现事务必须要遵守 4 个特性,分别如下: 原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节,而且事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样,就好比买一件商品,购买成功时,则给 阅读全文
posted @ 2022-09-12 10:47 atomxing 阅读(26) 评论(0) 推荐(0) 编辑
摘要:一、整型数组输入: (很简单)在终端的一行中输入固定数目的整型数字,并存到数组中,中间以空格分隔。 示例: 3 1 2 3 int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; ++i){ cin >> nums[i]; } (重难 阅读全文
posted @ 2022-09-07 12:15 atomxing 阅读(755) 评论(0) 推荐(0) 编辑
摘要:学习方法:类比单链表 和单链表的查找、插入做类似比较 核心思路:空间换时间 跳表的核心原理就是 用空间换时间,使得可以以二分的方式来进行节点的搜索 我的github: https://github.com/atomxing/skiplist 单链表查找很慢 必须遍历所有节点 添加部分索引加速查找 t 阅读全文
posted @ 2022-09-06 12:54 atomxing 阅读(49) 评论(0) 推荐(0) 编辑
摘要:神经网络解决连续状态空间(或者状态很多的情况) 经验回放 使得神经网络更拟合 打乱状态之间的关联 固定q 多加一个q预测值的神经网络 一段时间才会改变 以此固定q 让强化学习收敛更平稳 注意的是:因为多了固定q的方法,所以实际上有两个网络,一个model,另外一个target_model网络 mod 阅读全文
posted @ 2022-09-04 20:16 atomxing 阅读(43) 评论(0) 推荐(0) 编辑
摘要:https://zhuanlan.zhihu.com/p/342919579 好用的强化学习算法是? 超参数很容易调整或确定。SAC的 reward scaling 可以在训练前直接推算出来。PPO超参数的细微改变不会极大地影响训练 训练快,收敛稳、得分高。看下面的学习曲线 learning cur 阅读全文
posted @ 2022-09-04 20:15 atomxing 阅读(2494) 评论(0) 推荐(0) 编辑
摘要:数据结构出发 红黑树,最小堆,时间轮,跳表 4.分布式场景下:定时器设计 应用场景出发 单线程,多线程,分布式场景 定时器定位;服务器是怎么驱动逻辑的? 网络事件、定时事件、信号事件 怎么实现定时器? 单线程环境下: 通常与网络事件协调处理; 多线程环境下: 单独的定时器进行处理定时事件; 源码: 阅读全文
posted @ 2022-09-04 20:12 atomxing 阅读(133) 评论(0) 推荐(0) 编辑
摘要:为什么使用likely与unlikely 在Linux kernel的源码中,存在这样的用法: if (likely(cond)) { ...... } if (unlikely(cond)) { ...... } likely和unlikely是宏定义,若cond为真(非0),那么likely(c 阅读全文
posted @ 2022-09-04 20:09 atomxing 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-04 20:08 atomxing 阅读(15) 评论(0) 推荐(0) 编辑
摘要:书中有很多内容讲的是内存的操作 阅读全文
posted @ 2022-09-04 20:08 atomxing 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-04 20:07 atomxing 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-04 20:07 atomxing 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-02 15:01 atomxing 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-02 15:00 atomxing 阅读(15) 评论(0) 推荐(0) 编辑
摘要:struct list_head { struct list_head *next, *prev; }; 阅读全文
posted @ 2022-09-02 14:59 atomxing 阅读(14) 评论(0) 推荐(0) 编辑
摘要:调度算法 不同的调度算法适用的场景也是不同的。 接下来,说说在单核 CPU 系统中常见的调度算法。 01 先来先服务调度算法 最简单的一个调度算法,就是非抢占式的先来先服务(First Come First Serve, FCFS)算法了。 顾名思义,先来后到,每次从就绪队列选择最先进入队列的进程, 阅读全文
posted @ 2022-09-02 14:58 atomxing 阅读(984) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-02 14:58 atomxing 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-02 14:57 atomxing 阅读(23) 评论(0) 推荐(0) 编辑
摘要:来自 https://blog.csdn.net/u014426028/article/details/108037971 在linux内核中进程以及线程(多线程也是通过一组轻量级进程实现的)都是通过task_struct结构体来描述的,我们称它为进程描述符。 而thread_info则是一个与进程 阅读全文
posted @ 2022-09-02 14:57 atomxing 阅读(621) 评论(0) 推荐(0) 编辑
摘要:struct thread_info { struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ __u32 flags; /* low l 阅读全文
posted @ 2022-09-02 14:55 atomxing 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-01 15:21 atomxing 阅读(20) 评论(0) 推荐(0) 编辑
摘要:3 5 12 13 15章为重点 (https://www.nowcoder.com/discuss/813838?type=all&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_all_nctrack) 与操作系统结 阅读全文
posted @ 2022-09-01 15:19 atomxing 阅读(40) 评论(0) 推荐(0) 编辑
摘要:string find() (详细见上面string) 从string开始谈find() 查找是在处理数据中最重要的一种操作方式之一。 string中find()的应用( rfind() 类似,只是从反向查找,就是从string.length()-1的下标开始反向查找) 原型如下: (a)size_ 阅读全文
posted @ 2022-09-01 15:18 atomxing 阅读(103) 评论(0) 推荐(0) 编辑
摘要:pop_back() 删除数组尾端元素 push_back() 在数组尾插入一个元素 emplace_back() 在数组尾插入一个元素 要注意的是: 1、pop_back()函数并没有真的把原来数组内存里面的数值给删掉,而是仅仅取消了数组最后一个元素的地址映射。 来自 <https://blog. 阅读全文
posted @ 2022-09-01 15:14 atomxing 阅读(1046) 评论(0) 推荐(0) 编辑
摘要:大致有一下几种方法实现用于把一个vector赋值给另一个vector: 2022年5月18日09:48:50 set map也是可以使用下面方法的 方法1: vector<int > v1(v2); //声明,只有在声明、初始化的时候能用 方法2:使用swap进行赋值:注意会进行交换,原容器数据丢失 阅读全文
posted @ 2022-09-01 15:13 atomxing 阅读(1119) 评论(0) 推荐(0) 编辑
摘要://inserting an element vector::insert(iterator position, value); 例如:a.insert(a.begin, 15); //inserting multiple elements vector::insert(iterator posit 阅读全文
posted @ 2022-09-01 15:13 atomxing 阅读(59) 评论(0) 推荐(0) 编辑
摘要:再次提醒 vector 一定要给了空间后才能用下标赋值 (具体原因见:reverse和resize的区别 reverse和resize的区别) 给空间例子: vector<vector<int> > matrix(n, vector<int>(n, 0));//分配空间方法1 matrix[uppe 阅读全文
posted @ 2022-09-01 15:13 atomxing 阅读(57) 评论(0) 推荐(0) 编辑
摘要:创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态 就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行 执行状态:进程处于就绪状态被调度后,进程进 阅读全文
posted @ 2022-09-01 11:30 atomxing 阅读(844) 评论(0) 推荐(0) 编辑
摘要:博客园24h内上传的图片数量是有限制的,到一定数量就得隔24h,迁移博客的时候要注意 阅读全文
posted @ 2022-09-01 11:28 atomxing 阅读(14) 评论(0) 推荐(0) 编辑
摘要:https://www.bilibili.com/video/BV1ER4y1J7hp 这个姿势的错误是迈的步子太大,落地点太过靠前会产生刹车效应 正确的跑步姿势落地点,要尽可能靠近身体的正下方,距离重心越近越好 这个姿势的错误是脚尖着地,跑步时候的前掌着地,并不等于脚尖着地,脚尖是我们脚上比较脆弱 阅读全文
posted @ 2022-09-01 11:23 atomxing 阅读(728) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-01 11:22 atomxing 阅读(10) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-09-01 11:18 atomxing 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示