我想在不同的std::threads
中运行具有不同设置的Fortran90函数,它使用许多模块来存储设置和一些常规数据。我看到的问题是,Fortran模块就像单例对象。当我用两个线程调用该函数时,它们可以在同一个模块上工作。有没有办法让模块threadprivate像openmp一样?
例如,对于openmp,具有threadprivate数据的模块如下所示:
MODULE EXAMPLE
USE OMP_LIB
! some threadprivate data:
INTEGER :: VALUE = 0
! make value threadprivate.
!$OMP THREADPRIVATE(VALUE)
CONTAINS
END MODULE EXAMPLE
我可以为std::thread
做一些类似的事情吗?
答案 0 :(得分:1)
C ++标准线程与Fortran完全不同。 在Fortran你无能为力,
您必须以一种以其他方式存储数据而不是以全局(模块)变量存储数据的方式自己实现所有内容。