我正在使用Julia(1.2.0)中的ccall来调用我在一个运行于多个内核的循环中创建的c函数:
Threads.@threads for i in 1:10
ccall((:myfunction,"myclib",(...),input[i])
end
该实现在没有Threads。@ threads的情况下运行良好,但是当我使用Threads。@ threads时由于分段错误而崩溃,我也不知道为什么。我检查了我在myclib中使用的所有c函数,它们都是线程安全的。
我的问题如下:在这种实现中,在c线程上运行的功能是独立的还是以某种方式链接在一起?例如,它们共享全局变量吗?还是堆栈内存限制独立地适用于每个线程或适用于所有线程使用的内存?
感谢您的帮助,
迪伦