Multithreading 仅使用堆栈变量终止线程安全吗?
我有一个fortran子程序。一旦启动,它会运行相当长的时间Multithreading 仅使用堆栈变量终止线程安全吗?,multithreading,kill,Multithreading,Kill,我有一个fortran子程序。一旦启动,它会运行相当长的时间 现在,我想编写一个程序,它调用线程中C++的FORTRAN子程序。 当用户请求时,应停止(或取消)线程。 但子例程不支持在运行期间终止计算的任何方法 据我所知,子例程只使用堆栈变量(没有分配)。 子例程由windows的静态库(.lib文件)提供 在这种情况下,我是否可以假设终止子例程线程不会导致任何问题,例如资源泄漏 仅供参考,以下是运行环境: 操作系统:Windows 7 64位或更高版本 编译器:C++的MSVC 2015,英
现在,我想编写一个程序,它调用线程中C++的FORTRAN子程序。 当用户请求时,应停止(或取消)线程。 但子例程不支持在运行期间终止计算的任何方法
据我所知,子例程只使用堆栈变量(没有分配)。 子例程由windows的静态库(.lib文件)提供 在这种情况下,我是否可以假设终止子例程线程不会导致任何问题,例如资源泄漏 仅供参考,以下是运行环境:- 操作系统:Windows 7 64位或更高版本
- 编译器:C++的MSVC 2015,英特尔并行工作室fortran < /LI>
do_run
标志的线程中执行某种类型的控制循环,当do_run
为false时(通过用户干预),循环结束,Fortran进程可能会以这种方式终止(或使用其他钩子停止).?@txtechhelp感谢您的评论。我真的想添加一些标志来优雅地退出线程。但是,我没有子例程的源代码。我只把它当作一个库,所以修改子程序不是我的选择,很遗憾。@ TXTeaSufter,我有一个子程序,用C++从C++调用它,子程序是从C++直接调用的。据我所知,子程序只是运行一些矩阵计算。我认为不可能肯定地回答这个问题,特别是因为我们不知道我们在谈论什么操作系统、编译器等。我建议进行一些严格的测试。如果这是一个库调用,也就是说,如果您的原型进入另一个DLL/SO文件,那么您可能运气不好;您可能能够实现的最多功能是生成线程,然后使用同步对象来检测何时完成。