摘要: CAS机制 什么是CAS? CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 主内存中存放的共享变量的值:V(一般情况下这个V是内存的地址值,通过这个地址可以获得内存中的值) 工作内存中共享变量的副本值,也叫预期值:A 需要将共享变量更新到的最新值:B 更新一个变量的 阅读全文
posted @ 2021-08-31 21:43 DWVictor 阅读(188) 评论(0) 推荐(0) 编辑
摘要: HTTP keep-alive和TCP keepalive TCP Keepalive的起源 TCP协议中有长连接和短连接之分。短连接环境下,数据交互完毕后,主动释放连接; 长连接的环境下,进行一次数据交互后,很长一段时间内无数据交互时,客户端可能意外断电、死机、崩溃、重启,还是中间路由网络无故断开 阅读全文
posted @ 2021-08-31 21:13 DWVictor 阅读(683) 评论(0) 推荐(1) 编辑
摘要: OpenMP + C++ functional 可以瞬间构造一个线程池 #include <iostream> #include <functional> #include <vector> using namespace std; void fun (int a, int b) { cout<< 阅读全文
posted @ 2021-08-31 20:17 DWVictor 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 在C++中使用openmp进行多线程编程 一、前言 多线程在实际的编程中的重要性不言而喻。对于C而言,当我们需要使用多线程时,可以使用boost::thread库或者自从C 11开始支持的std::thread,也可以使用操作系统相关的线程API,如在Linux上,可以使用pthread库。除此之外 阅读全文
posted @ 2021-08-31 20:10 DWVictor 阅读(4409) 评论(1) 推荐(3) 编辑
摘要: Faiss使用多线程出现的性能问题 faiss在增加CPU的情况下,反而出现效率低下的问题。 从理论上看,作为一个CPU/GPU计算型的应用,更多的核意味着更大的计算吞吐能力,性能只会越来越好才是。 在实际过程中,通过taskset命令分配更多的核给faiss只会带来更长响应时间以及更大的响应时间偏 阅读全文
posted @ 2021-08-31 16:31 DWVictor 阅读(544) 评论(0) 推荐(1) 编辑