前言
当循环中任务时间较长时,如何多线程的加速for循环中的内容。
一、使用步骤
1.使用线程加速
使用线程加速,代码如下(示例):
#pragma omp parallel for
for (int i = 0; i < input->points.size(); i++)
{}
需要注意:循环体中不能有相互依赖的变量,防止线程冲突
同时,在cmake中添加
// 查找OMP库
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
// 添加库链接
target_link_libraries({需要生成程序}
-fopenmp)