- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个函数同时在两个线程上运行。两个函数都调用此方法 PyObject_CallObject(pFunc,pArgs)
执行两个不同的 python 函数。但是当我尝试这样做时,我遇到了 access violation reading location
异常。两个函数中使用的 pFunc
和 pArgs
都是该函数的本地数据,没有共享数据。我仍然如何得到异常(exception)?
最佳答案
那是不可能的。在调用任何 Python CAPI 函数之前,您必须获取全局解释器锁 (GIL)。只有少数函数可以在没有 GIL 的情况下调用。
https://docs.python.org/2/c-api/init.html#thread-state-and-the-global-interpreter-lock
The Python interpreter is not fully thread-safe. In order to support multi-threaded Python programs, there’s a global lock, called the global interpreter lock or GIL, that must be held by the current thread before it can safely access Python objects. Without the lock, even the simplest operations could cause problems in a multi-threaded program: for example, when two threads simultaneously increment the reference count of the same object, the reference count could end up being incremented only once instead of twice.
关于multithreading - 如何同时在两个不同的线程中执行 PyObject_CallObject()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26115414/
我是一名优秀的程序员,十分优秀!