自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 timerfd_create 和 epoll_create1

是Linux系统提供的一种高级定时器接口,它允许应用程序创建一个特殊的文件描述符,该文件描述符可用于监控定时事件。当定时器触发时,内核会向这个文件描述符写入数据,应用程序可以通过读取这个文件描述符来检测定时器是否到期。相比于传统的alarmsetitimer等定时器接口,提供了更高的精度和更好的可移植性。通常和timerfd_settime配合使用。函数创建一个定时器文件描述符,参数表示使用单调时间作为计时基准,标志表示文件描述符为非阻塞模式并在进程退出时自动关闭。函数用于配置定时器,ts。

2024-07-07 15:35:32 884

原创 explicit 关键字

C++中的隐式转换主要包括以下几种类型:基本类型转换:例如,将整型(如)转换为浮点型(如),或者将短整型()转换为长整型()。这些转换通常在算术运算中发生,目的是使所有操作数具有相同的类型。 枚举类型转换:枚举类型的值可以隐式转换为整型,反之亦然,只要枚举值的范围在目标整型范围内。 指针转换:用户定义的类型转换: 引用和指针的上下文转换:在某些上下文中,引用或指针可以被转换为其所指向的类型。 explicit关键字过度依赖隐式转换可能导致意料之外的结果。例如,在比较不同类型

2024-07-06 18:56:14 569

原创 fork和vfork

vfork()创建的进程与父进程共用页表,子进程创建之后会阻塞父进程执行,直至执行结束,详见。

2024-06-01 19:35:05 178

原创 GPU基本概念

相比于CPU通过不断提升时钟频率以提高计算速度,GPU则不断增加计算单元数量。CPU的优势在于快速进行复杂运算,GPU的优势在于同时进行大量类似简单运算。如下图总结了CPU与GPU的特点差异:NVIDIA曾在一个发布会很形象地展示了CPU和GPU的工作差异,CPU只能逐个像素点计算并刷新,而GPU可以每个像素点单独计算并一起向屏幕刷新。

2024-01-05 20:45:48 462

原创 Vulkan-Samples Android 环境配置

Vulkan-Samples 是Android官方Vulkan C++示例的集合,其中包含一些Vulkan绘制示例。

2023-12-03 12:45:25 650

原创 静态局部变量

但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,这给程序的维护带来不便。通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。

2023-11-05 15:39:20 57

原创 怎么看Android.bp文件

Android.bp 是 Android 编译系统从 make 系统切换到 ninja 系统过程中的产物,Android 7.0 和 8.0 是该编译系统切换的过渡期,所以在 Android 7.0 和 8.0 时既可以看到 Android.mk,也可以看到 Android.bp,但是从 Android 9.0 开始,在Android 源码里面 Android.mk 已经看不到了,只有少数 Vendor 厂家的代码里面还可以看到。

2023-11-05 09:57:13 139

原创 Anroid 弱指针

要想通过弱指针使用所指向的对象,首先通过promote()方法获取强指针。弱指针所指向的对象是有可能在其它地方被销毁的,如果对象已经被销毁,wp的promote()方法将返回空指针,这样就能避免出现地址访问错的情况。弱指针只是指向一个对象,仅记录该对象的地址,并未重载。()函数,不能通过弱指针来访问该对象。

2023-11-04 17:34:12 47

原创 C++ 内存序

与 consume 操作有依赖关系的指令都不会重排到 consume 操作前面. 它对重排的限制比 acquire 宽松些, acquire 要求所有的指令都不能重排到它的前面, 而 consume 只要求有依赖关系的指令不能重排到它的前面. 因此在某些情况下, consume 的性能可能会高一些。的操作不会产生任何其他的指令, 只会影响编译器的优化: 任何指令都不能重排到 acquire 操作的前面, 且不能重排到 release 操作的后面;C++内存关系和其他几种内存序。中较为详细的介绍了。

2023-11-04 16:22:13 76

原创 std::call_once() 单次执行函数

这个常适用于单次初始化场景,具体参考:std::call_once()函数详解-CSDN博客

2023-11-04 10:41:18 72

原创 Ubuntu16.04 下安装arpack++

  因为要用到arpack++包,在网上看了一些关于arpack安装的东西,感觉很麻烦,结果发现只要终端运行以下一条命令就可以:  sudo apt-get install libarpack++2-dev...

2018-05-03 18:38:59 1466 1

原创 Ubuntu16.04下安装gtsam-3.2.1

GTSAM官网下载gtsam-3.2.1.zip文件,需依赖安装:BOOST version 1.43 or higher (install through Linux repositories or MacPorts)CMake (http://www.cmake.org/) 2.6 or higher解压gtsam-3.2.1.zip文件并到gtsam-3.2.1文件路径下执行:$  mkdi...

2018-03-09 15:21:05 9062 2

原创 Ubuntu16.04下汉化Kdevelop

1.下载汉化文件:访问https://l10n.kde.org/team-infos.php?teamcode=zh_CN利用相应svn命令下载Applications in stable kdelibs4-based和Documentation in stable kdelibs4-based ;或者直接下载我所上传的文件;2.新建.sh文件,这里命名为shelltest.sh,文件

2017-10-23 10:03:36 628

kdevelop汉化文件包

kdevelop汉化所需文件包,具体汉化方法参见我的博客《Ubuntu16.04下汉化Kdevelop》

2017-10-23

机器学习实战(Machine Learning in Action 中文版)源码下载

机器学习实战(Machine Learning in Action 中文版)

2017-05-10

技术之瞳-阿里巴巴技术笔试心得PDF

技术之瞳-阿里巴巴技术笔试心得.pdf

2017-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除