- 博客(6)
- 收藏
- 关注
原创 C++ (void *) 强制类型转换
中间想过通过仅声明一个namespace,将其余两个命名空间中整合在一块,就不会出现互相包含引用的关系、还有一个是增加一个参数,将他一层一层递归传到需要用到的地方。3-但因为将后面用到的类,提前在前面引用,所以整个逻辑就像:a中需要声明b中的一个对象,b中需要声明c中的一个对象,c中需要声明a中的一个对象。2-因为整个项目是在多线程下,其中一个命名空间对象需要在某个子线程下运行,static会共享变量所以不可取,所以就在程序开始进行声明。1-有三个命名空间,a、b、c。希望能够为你启发一条新思路。
2024-11-12 15:43:28
257
1
原创 fatal error: error writing to /tmp/: No space left on device解决方法
当然,也可以删除其他你认为可以删除的,上面报的错误是显示我的tmp目录下的某个文件,下面是chatgpt给出的解决方案,可以参考一下,上面那个/.cache也可以,可能再次加载程序时会比较耗时,不过我推荐还是.cache。说了这么多,解决方式是什么呢,那肯定就是得删点东西喽,删除./cache文件中的缓存即可。今天编译c++程序时,报了这么一个错误,查了一下是磁盘空间不够。大家可以使用命令查看磁盘空间。这边呢会显示100%
2024-05-24 19:35:40
1160
1
原创 报错“Failed to parse remote port from server output”
通过查阅资料发现,大多数原因是不恰当的关闭和远程服务器的连接,或者和服务器同步时出现问题导致。
2024-05-13 15:49:10
1522
1
原创 生产者消费者模型的实现
若队列未满且不为空,生产者-消费者保持一种动态平衡状态。消费者从队列中取出数据,队列为空,则消费者阻塞。生产者产生数据放入队列中,队列满,生产者阻塞。文章难免有错误和不足的地方,欢迎小伙伴的提出和指正。
2024-04-30 09:08:42
247
1
原创 C++ std::thread 中join()和detach()的区别
可以使用线程间通信机制,如条件变量(std::condition_variable)、信号量(std::semaphore)、消息队列等,在子线程结束时发送一个特殊的消息或信号给主线程,主线程收到消息或信号后就可以知道子线程已经结束了。基本上,这是一种可以用来知道一个线程已结束的机制。(2)当使用detach()函数时,主调线程继续运行,被调线程驻留后台运行,主调线程无法再取得该被调线程的控制权。(1)当使用join()函数时,主调线程阻塞,等待被调线程终止,然后主调线程回收被调线程资源,并继续运行;
2024-04-24 18:26:52
552
原创 为什么需要内存对齐?
因为计算机通常使用高速缓存来加速数据访问。处理器会从主内存中加载数据到缓存行中,然后在缓存行中进行操作。还有一些系统对对齐要求非常严格 ,不同平台下不同数据类型大小不一定一致的问题。看到内存对齐相关的的规则,记录一下为什么需要内存对齐自己的看法。假如没有内存对齐,计算机可能就需要读取该数据两次,降低效率。emmm,了解的就是这些,第一次写博客,如有不足,互相交流。需要字节对齐的根本原因在于CPU访问数据的效率问题。
2024-04-19 19:12:55
126
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人