西门赤血
码龄9年
关注
提问 私信
  • 博客:50,588
    社区:1
    50,589
    总访问量
  • 66
    原创
  • 68,039
    排名
  • 12
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-06-19
博客简介:

FUHAILIANG_2015的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    581
    当月
    10
个人成就
  • 获得50次点赞
  • 内容获得7次评论
  • 获得68次收藏
创作历程
  • 11篇
    2024年
  • 1篇
    2023年
  • 34篇
    2022年
  • 20篇
    2021年
成就勋章
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

学习一门新的语言有感

我觉得需要关注一下几点。
原创
发布博客 2024.11.02 ·
80 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

weakptr中的lock函数

C++ 中的weakptr 中lock 函数可以构造出一个{弱引用指针观察的强引用计数} shareptr。在过程通过weakptr 构造shareptr 保证了原子操作从而避免了。空悬的weakptr的问题 避免了空悬的shareptr问题。同样定义了 强引用和弱引用 对应上面两种情况。强是全局的变量和函数 的 初始化和定义的。弱是没有初始化 全局变量 和 函数定义。C语言中强符号 和 弱符号。
原创
发布博客 2024.10.27 ·
80 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

C++ std::condition_variable notify_one()与notify_all()的作用

notify_one()与notify_all()常用来唤醒阻塞的线程,线程被唤醒后立即尝试获得锁。notify_one()因为只唤醒一个线程,不存在锁争用,所以能够立即获得锁。其余的线程不会被唤醒,等待再次调用notify_one()或者notify_all()。notify_all()会唤醒所有阻塞的线程,存在锁争用,只有一个线程能够获得锁。那其余未获取锁的线程接着会怎么样?会阻塞?还是继续尝试获得锁?答案是会阻塞,等待操作系统在互斥锁的状态发生改变时唤醒线程。
原创
发布博客 2024.10.08 ·
213 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

QT Creator

这个时候QT Creator 会频繁的崩溃 这个时候删除配置文件通常位于 C:\Users<你的用户名>\AppData\Roaming\QtProject\ 和 C:\Users<你的用户名>\AppData\Roaming\Qt Creator\。QT Creator 中打开源码时候可能失败了,导致有大量记录无法打开。
原创
发布博客 2024.09.22 ·
177 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

QT 中场景坐标

但是如果设置了setSceneRect 矩形区域的话 ,也就是场景的左上角的坐标。这个时候 左上角的坐标 就和 view窗口的左上角 原点重合了。也就是0.0点 view 会自适应这个 原点坐标。场景坐标的原点永远是是 笛卡尔坐标系的原点。
原创
发布博客 2024.07.27 ·
284 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

python 多线程

系统创建多进程的机制是不一样的,linux 系统的子进程会clone 父进程的。在使用多进程在linux 系统中要注意 linux 系统的机制和window。所以这个时候 文件打开,数据库操作等等 要重新连接 重新打开文件等等。文件描述符,这样也就导致了 父进程的文件的读写位置和子进程是一样的。python 中有全局锁GIL 所以在计算密集型的程序中。要使用多进程的方式 代替多线程计算。
原创
发布博客 2024.07.14 ·
161 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

python_pandas

所以会有时候定位数据,要分清楚 索引和标签。列使用标签 标签也就是 表头。还有个轴 axis 的概念。0 为横轴 1为纵轴。
原创
发布博客 2024.06.12 ·
157 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

CMake是怎么找到Qt相关模块的

一般我们不会在CMakeLists里面硬编码CMAKE_PREFIX_PATH,推荐通过环境变量找到模块。深入了解find_package之后,我们就明白COMPONENTS其实是一个选项,列出来了必选的模块。当我们使用QT创建了一个CMake项目后,我们尝试使用CMake编译时,会遇到找不到Qt的模块的问题,Qt的模块是放在Qt/5.15.2/clang_64/lib/cmake,所以我们只需要配置。记得将QT_DIR环境变量放到PATH中,因为find_package会从PATH中寻找。
原创
发布博客 2024.05.28 ·
766 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

信号量--

Semaphore,对多线程有过了解的人都听说过,一般我们解释为“信号量”。可是,这个单词对我们来说还是比较陌生,它和另一个单词 Singal(信号)什么关系呢?想要真正理解这个概念,必须得从它的翻译开始。事实上,Semaphore 最好的翻译应该为“信号计数量”,承认了这一点,想必你也清楚了:它和 Signal 不是一回事!这个信号计数量 === 计数量 是很准确的翻译。
原创
发布博客 2024.05.24 ·
164 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

注册浏览器回调接口

【代码】注册浏览器回调接口。
原创
发布博客 2024.05.20 ·
138 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

QT movetothread

之后 会调用 Qthread 中的run 函数 ,run函数 执行 exec 函数。如果自己重载 run 函数 ,那么也可以,但是如果不执行 exec 启动消息循环。今天在次看 官方文档 Qthread --> call Start 函数。启动消息循环 ,这样只要线程不退出 就可以一直处理 消息。之前一直不明白为啥把对象 移动到线程之后。也就能处理 跟这个线程 相关的槽函数了。他的槽函数 就会在 新线程程中运行了。就不能处理 线程关联的对象的槽函数了。关于movetothread 的。
原创
发布博客 2024.05.16 ·
211 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

opengl 坐标系理解

在固定功能绘制管线情况下,默认OpenGL中model-view与projection矩阵都是单位矩阵。默认3D 物体的自己的坐标系是和世界坐标系重合的。世界坐标系是原点默认也在屏幕的中心点。如果没有应用任何变换,对象坐标系、世界坐标系、照相机坐标系和裁剪坐标系是重合的。
原创
发布博客 2023.11.06 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ldd notfond问题

是因为 系统的默认搜索路径找不目标so. 这个时候 设置一下系统环境变量。linux ldd 分析找不到 so 动态库的时候。LD_LIBRARY_PATH 系统环境变量就好。
原创
发布博客 2022.12.11 ·
631 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

C++ 随笔

成员函数 还是单独存在的。就是在成员函数被调用的时候把this指针传递给成员函数,当访问成员数据时候。在内存中看C++类和结构体是一样的 当C++类实例化的时候。就是会被计算个内存大小。只不过是C++类有些特性 继承 虚函数 多重继承 菱形继承等 这些额外增加了些内存。之后 把类中的成员数据存在那块内存。可以多学习C++汇编。
原创
发布博客 2022.11.29 ·
681 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

悲观锁和乐观锁

乐观锁遵循CPU的或者操作系统的线程调度 并没有主动的挂起线程。区别就在于是否 把线程睡眠。其实悲观锁和乐观锁的。
原创
发布博客 2022.11.23 ·
199 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

计算机补码

高级语言直接在编译阶段或者运行阶段 把负数转换成 补码的二进制数字,之后传递给计算机计算就行了。计算机是二进制电路 也就意味数字也是二进制的电路。那么补码的存储也就是一种电路表示而已 ,
原创
发布博客 2022.11.23 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

物理内存的分页

二级页表:一级页表映射4MB(2^22)、二级页表映射4KB,则需要1K个一级页表项(4GB / 4MB = 1K, 2^10个一级页表项)、每个一级页表项对应1K个二级页表项(4MB / 4KB = 1K),这样页表占用4.004MB(1K * 4B + 1K * 1K * 4B = 4.004MB)的内存空间。程序可以独享4GB的线性地址。对于4GB线性地址而言,每个页4KB,则总共可以分成1024*1024=1048576个页面。那么这地址是几位呢,也就是物理地址总线的长度,32位的就是 4个字节。
原创
发布博客 2022.11.22 ·
915 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

nullptr用法

是一种特殊的拷贝,利用的是C++11新引入的移动构造函数和移动赋值运算符性质。换言之,这不是拷贝,这是移动。再来看下右值引用的绑定问题,由于解引用操作符生成左值,取地址运算符生成右值,所以指针nullptr是一个右值,可以被绑定到unique_ptr的移动操作构造函数/移动赋值运算符上。首先,nullptr是C++11新标准下引入的一种特殊类型的字面值, 它可以被转换为任意其他的指针类型。其次:nullptr_t的定义看下:typedef decltype(nullptr) nullptr_t;
原创
发布博客 2022.11.15 ·
510 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

操作系统分页管理

比如4级页表 可能对应的页大小就G的大小。3级对应M 的大小 2级对应K 的大小。1级还是对应页内偏移,最终找到了实际的物理地址。之前总是不理解 多级页表查询机制。现在想 道理应该是这样的。分的级越多 也就对应页的大小就越大 也可以这么理解 至此。操作系统管理内存使用分页机制。每个页大小4K 这样进程在存储每一页的地址,在加上 页内偏移就能得到实际的物理地址。这个需要mmu 这个转换支持。
原创
发布博客 2022.11.07 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

GCC 编译器常用选项

S 输出编译后的汇编代码文件 gcc a.c -o a.s -S。-c 输出链接后的可重定位文件 gcc a.c -o a.o -c。-E 输出预处理后的代码文件 gcc a.c -o a.i -E。-g 在编译结果中加入调试信息 gcc a.c -o a -g。-o 指定输出文件名 gcc a.c -o a。GCC 编译器常用选项。Linux 编程环境。
原创
发布博客 2022.11.01 ·
427 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多