1.omp parallel
注意在工程设置中打开其开关,若采用CMakeList编译,需要加入以下语句
#OpenMP SURPPORT
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}")
set(CMAKE_EXE_LINKER_FLAGS " ${CMAKE_EXE_LINKER_FLAGS} $ {OpenMP_EXE_LINKER_FLAGS}")
endif();
可显式设置omp_set_num_threads(最大线程数),否则默认并行线程数可能是1;
for循环内部都是稳定值,计算参数不受循环顺序改变;
2.异步程序实现多线程
std::async
std::future