我已经写了一个python脚本来使用gstreamer (pygst和gst模块)来计算replaygain标签,它崩溃时出现了各种gobject错误。我发现您可以通过将以下样板放在脚本顶部来修复此问题:
import gobject
gobject.threads_init()我试过,它起作用了。有谁能解释为什么这些行是必要的,为什么pygst本身不做这件事?
发布于 2010-09-24 07:03:23
因为,您可以在非线程环境中使用gobject。这并不罕见。在线程环境中使用gobject时,需要通过调用gobject.threads_init()来显式初始化。这也将确保当"C“函数被调用时,GIL被释放。
也可以从函数文档中获得:
的threads_init()函数在gobject模块中初始化Python线程的使用。该函数与gtk.gdk.threads_init()函数不同,因为该函数还初始化GDK线程。
基本上,您显式地告诉gobject模块您将使用线程并相应地对其进行初始化。
https://stackoverflow.com/questions/3782962
复制相似问题