有没有一种方法可以用单线程版本库编译多线程c++程序?
Is there a way to compile multi-threaded C++ program with single-threaded version library?
我正在尝试做一个代码自动编译和自动评估程序。我想比较一个程序在多线程模式和单线程模式下的效率差异。所以我想知道,如果有一个编译选项,允许我用一个伪多线程库(它实际上使用单线程实现)编译一个多线程程序,从多线程程序派生一个单线程程序。
我不知道你用什么多线程,但是你可以使用OpenMP一个共享内存多处理API。
你有两种方式在多线程模式和单线程模式之间切换:
- 在GCC和Clang中禁用/启用带有
-fopenmp
标志的OpenMP - 使用
OMP_NUM_THREADS=X
环境变量或直接使用例程set_omp_num_threads(X)
,其中X
是您的线程号。
请注意,这两种方法之间存在差异,它们不等价。如果需要,我可以详细说明这一点。
相关文章:
- 在C/C++中执行"_dl_init"(程序初始化)是单线程的吗
- 特定对象文件的单线程生成
- 如何在类中同时运行某些内容(在单线程平台中)?
- GDB 8.1 无法在单线程简单程序中跟踪 std::string 变量的值
- 双线程应用比单线程应用慢 C++ (VC++ 2010 Express).如何解决?
- OpenMP:共享同一算法的单线程和多线程实现
- std::原子布尔值或普通全局布尔值在单线程中很好吗?
- 重写多线程事件驱动的C 程序以使用单线程Boost :: Asio
- C++多线程操作比单线程慢
- 多线程和单线程代码维护
- 线程池的计时测试:单线程 vs 回调 tp vs 未来 tp
- 在 Linux 中从单独的单线程进程生成多线程进程时出现问题
- C++多线程性能比单线程代码慢
- 即使在单线程程序中,共享指针是否在引用计数中使用原子操作
- 从单线程到多线程图像处理
- 当发送多个同时请求时,单线程异步系统中Beast Boost异步HTTP客户端的行为
- 在单线程中使用 asio::async_write 时获得"the requested resource is in use"
- 在C++中,如何在并发读取和锁定的单线程写入uncodered_map之间进行交替
- wxWidgets-单线程多任务处理
- 有没有一种方法可以用单线程版本库编译多线程c++程序?