- 博客(5)
- 收藏
- 关注
原创 代码阻塞时如何终止pthtrad线程
当我想让线程退出时,我直接将isStart置为false,我当时认为线程函数就会判断到isStart不为true就会跳出while循环并结束。在使用中很长时间没有出现过问题,直到某一天我在写测试用例时发现,如果我启动这个线程后没有客户端连接,当我想要线程退出时,把isStart置为false,线程没有退出,主进程一直处于等待线程退出状态。一番排查后发现是因为accept采用的是阻塞等到客户端连接,也就是说根本没有执行到while循环,自然也不会判断isStart的值。
2024-07-31 11:43:31
219
原创 线程休眠函数sleep_for
最近在项目中遇到一个需求,要求每个一段时间判断某个值的变化,以确定目前的状况一切正常,脑海中想到的第一个就是while(1){判断值;},但这种方法意味着对CPU的占用率很高。于是上网查了一下,发现了sleep_for函数,它会使当前线程处于休眠状态,让出CPU给其他任务执行,从而减少CPU的占用。使用sleep_for函数需要引用头文件和,下图为使用的例子。
2023-09-11 15:23:06
692
原创 unordered_map的使用与“无序性”
新学到C++中的一个容器,unordered_map,字面意思“无序的map”,它不会像map一样对存储的数据进行排序,但也不意味着数据会按照插入顺序进行存储。可见,unordered_map中的数据存储顺序并不是按照插入的顺序。如果想约束数据存储顺序,建议使用队列。注:使用前记得包含#include <unordered_map>
2023-09-06 16:18:48
342
1
原创 使用Protobuf进行跨语言的数据传输
protobuf是Google的一种独立的数据交换格式,是一种序列化数据结构的协议。Google提供了多种语言的实现,包括JAVA、C#、C++、GO、Python。Protobuf是一种二进制的格式,比使用XML进行数据交换快。
2023-08-23 19:11:34
600
原创 C#调用exe文件以及获取exe文件的返回值
使用processName.ExitCode即可获取exe的返回值,记得在exe文件中写返回值。使用Process.Start("可执行文件路径")去执行exe文件。
2023-08-08 18:27:24
1839
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人