- 博客(344)
- 资源 (20)
- 收藏
- 关注
原创 std::future和std::promise详解(原理、应用、源码)
传递异常的通道的原因是由于异步调用是在另外一个线程执行异步操作,但是在另外一个线程进行异步调用结果信息获取,如果异步调用执行过程中出现异常,那么此时这个异常信息也是异步调用执行结果的一种表现形式,那么此时如果不捕获这异常通过构建的通道传递给异步调用结果信息使用线程,这个异常将会在异步调用线程被传递,在异步调用结果使用线程中无法捕捉这一异常信息(因为不会传递到该线程)。这里就需要用到异步调用的概念。方法获取异步调用结果的时候,如果此时异步调用没有执行完成,即没有向通道内写入异步调用的结果(异步调用结果没有。
2024-09-03 11:19:00 610
转载 Android native开发需要注意native线程的Detach
如题在跨平台开发的过程中,通常跨平层/C++会创建native线程,如果创建的native线程运行的代码有调用到Java层接口(跟java层有交互),即有调到了AttachCurrentThread,当native线程退出时需要调DetachCurrentThread接口跟JVM世界做分离。//创建一个key实例,并绑定key实例释放时的回调函数,即线程退出时会清理所有key,同时调用跟key实例绑定的回调函数!//保存key实例对应的值,同hashmap的用法。// env的使用,调java的接口接。
2024-02-04 16:50:39 218
原创 网络编程----select 模型总结
将一组socket数组投递给系统,然后在系统里去查询socket是否有信号,过程都是在select函数里面去进行的,再到返回有操作的socket集合。
2023-12-12 19:17:24 167
原创 UDP主要丢包原因及具体问题分析
这是因为当报文过大时会被分割,使得每个分割块(翻译可能有误差,原文是fragmentation)的长度小于MTU,然后分别发送,并在接收方重新组合(reassemble),但是如果其中一个报文丢失,那么其他已收到的报文都无法返回给程序,也就无法得到完整的数据了。如果只是小规模程序,也可以自己实现丢包处理,原理基本上就是给文件分块,每个数据包的头部添加一个唯一标识序号的ID值,当接收的包头部ID不是期望中的ID号,则判定丢包,将丢包ID发回服务端,服务器端接到丢包响应则重发丢失的数据包。
2023-11-14 18:52:24 2677
转载 C++如何获取特定进程CPU使用率
这篇文章将为大家详细讲解有关C++如何获取特定进程CPU使用率,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。计算原理为调用GetProcessTimes(),与上次调用得到的结果相减得到CPU占用时间,再除以两次调用的时间差,从而得到占用百分比。其中OpenProcess需要的权限为PROCESS_QUERY_LIMITED_INFORMATION,因此没有管理员权限也可以使用。使用方法:初始化:可以在构造函数中指定pid,也可以用setpid()指定pid。查看CPU
2022-12-07 17:42:02 5053 1
转载 jsoncpp与rapidjson易用性与性能评测
文章目录jsoncpp与rapidjson易用性与性能评测1. 概述2. 易用性2.1 jsoncpp2.2 rapidjson3. 性能4.总结jsoncpp与rapidjson易用性与性能评测1. 概述jsoncpp和rapidjson是两款常用C++11编写的第三方开源JSON序列化与反序列化库, 两者都基于MIT协议发布,对商用较友好,以下从使用上和性能上对两者做出评价,方便不同应用场景选择。2. 易用性2.1 jsoncpp头文件源文件并存: 一般根据平台编译成动态库引
2022-05-24 16:57:55 1281
转载 linux res shr区别,linux下VIRT,RES,SHR的含义
1、除了自身进程的共享内存,也包括其他进程的共享内存2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小3、计算某个进程所占的物理内存大小公式:RES – SHR4、swapout后,它将会降下来Unix/Linux 进程管理相关命令介绍进程是操作系统用于控制系统资源使用的实体。Unix/Linux 进程管理相关的命令主要有以下几个,在后面的脚本实现中会用到部分命令。显示进程属性命令ps 命令:该命令是最基本同时也是非常强大的进程查看命令,用于报告进程标识、用户、C.
2022-04-13 16:27:39 1247
转载 Ubuntu上wired setting没有wired选项的解决办法
sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service network-manager startsudo gedit /etc/NetworkManager/NetworkManager.conf把false改成truesudo service network-manager restart
2022-03-23 18:07:03 1376
原创 ubuntu20.04用conan 交叉编译C++ andriod 64位版本
主要就是conan profile的问题,没有配对的话很可能会编译不通过或者编译出32位版本android_ndk=/opt/android-ndk-r19c standalone_toolchain=$android_ndk/toolchains/llvm/prebuilt/linux-x86_64target_host=aarch64-linux-androidar_host_arm=linux-androideabiapi_level=28cc_compiler=clangcx
2022-02-18 17:36:41 527
转载 Springboot整合Kafka(自动,手动提交偏移量)
文章目录一. 简介二. 自动提交偏移量三. 手动提交偏移量3.1 引入依赖3.2 Kafka配置3.2.1 生产者3.2.2 消费者3.2.3 测试源码地址项目推荐该篇博客实现Springboot整合kafka ,自动,手动提交偏移量更多高级用法请看下篇博客一. 简介kafka概念相关的介绍请看官方文档和其他博文官方中文文档kafka入门介绍我们可以把偏移量交给kafka去提交,也可以自己控制提交时机。例如消息处理过程缓慢的情况下,就需要自己控制偏移量何时提交比较好。
2022-02-16 14:30:29 5025
转载 C++通过宏定义判断操作系统及编译器
C++的编译环境千奇百怪,很多时候一些代码在某些编译环境下可用,一旦移到其他环境下,就会干脆Compile Error对此,我们可以使用C++的宏定义来判断操作系统,从而进行一些有趣的操作(貌似意义不大)比如这样#include<iostream> #if !defined(_WIN32)//如果我使用的不是WIN32操作系统 #include<bits/stdc++.h>//那我就打开万能头文件 #endif //if要和endif搭配使用 using
2022-02-10 16:18:11 2560
转载 字节面试:SYN 包在什么场景下会被丢弃?
大家好,我是小林。之前有个读者在秋招面试的时候,被问了这么一个问题:SYN 报文什么时候情况下会被丢弃?好家伙,现在面试都问那么细节了吗?不过话说回来,这个问题跟工作上也是有关系的,因为我就在工作中碰到这么奇怪的时候,客户端向服务端发起了连接,但是连接并没有建立起来,通过抓包分析发现,服务端是收到 SYN 报文了,但是并没有回复 SYN+ACK(TCP 第二次握手),说明 SYN 报文被服务端忽略了,然后客户端就一直在超时重传 SYN 报文,直到达到最大的重传次数。接下来,我就给出我遇到过
2021-12-23 16:42:14 174
转载 Kafka/RocketMQ 多线程消费时如何保证消费顺序?
上两篇文章都在讨论顺序消息的一些知识,看到有个读者的留言如下:这个问题问得非常棒,由于在之前的文章中并没有提及到,因此我在这篇文章中单独讲解,本文将从消费顺序性这个问题出发,深度剖析 Kafka/RocketMQ 消费线程模型。Kafkakafka 的消费类 KafkaConsumer 是非线程安全的,因此用户无法在多线程中共享一个 KafkaConsumer 实例,且 KafkaConsumer 本身并没有实现多线程消费逻辑,如需多线程消费,还需要用户自行实现,在这里我会讲到 Kafka
2021-11-30 17:26:50 1975
转载 深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子。同样,根据摩尔定律,我们知道单核CPU的主频不可能无限制的增长,要想很多的提升新能,需要多个处理.
2021-11-29 17:16:43 171
转载 Kafka如何保证百万级写入速度以及保证不丢失不重复消费
一、如何保证百万级写入速度:目录1、页缓存技术 + 磁盘顺序写2、零拷贝技术3、最后的总结“这篇文章来聊一下Kafka的一些架构设计原理,这也是互联网公司面试时非常高频的技术考点。Kafka是高吞吐低延迟的高并发、高性能的消息中间件,在大数据领域有极为广泛的运用。配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。那么Kafka到底是如何做到这么高的吞吐量和性能的呢?这篇文章我们来一点一点说一下。1、页缓存技术 + 磁盘顺序写首先Kafka每次接收到
2021-11-29 15:50:53 314
转载 架構師之路
本文转载自开涛的博客微信公众号写在开篇不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。提升技术的误区:
2021-11-04 17:46:06 184
转载 kafka-我与面霸的三百回合大战
本文面试情节虚假,但知识真实,请在家人或者朋友的陪同下仔细观看,防止在观看的过程发呆、走神导致没学到知识。性能篇一位身穿格子衬衣,头发好似一拳超人的中年人走了过来,没错他就是面试官,他手握简历,若有所思,我当时害怕极了,然后他开口:小伙子啊,我们这边是基础架构的中间件组,既然你的简历没提到kafka,那我接下来问问你kafka的知识吧。我:好的,kafka平时看的不多,但也还了解一点,不是特别精通所以没写了。(嘿嘿,我是故意没写的,早就知道你要来这一套,kafka其实是俺最精通的东西了)面试官捋
2021-10-21 16:15:34 60
protobuf-2.5.0-win.zip
2016-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人