首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么python gstreamer在我的脚本顶部没有"gobject.threads_init()“就崩溃了?

为什么python gstreamer在我的脚本顶部没有"gobject.threads_init()“就崩溃了?
EN

Stack Overflow用户
提问于 2010-09-24 06:27:30
回答 1查看 3.1K关注 0票数 11

我已经写了一个python脚本来使用gstreamer (pygst和gst模块)来计算replaygain标签,它崩溃时出现了各种gobject错误。我发现您可以通过将以下样板放在脚本顶部来修复此问题:

代码语言:javascript
复制
import gobject
gobject.threads_init()

我试过,它起作用了。有谁能解释为什么这些行是必要的,为什么pygst本身不做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-24 07:03:23

因为,您可以在非线程环境中使用gobject。这并不罕见。在线程环境中使用gobject时,需要通过调用gobject.threads_init()来显式初始化。这也将确保当"C“函数被调用时,GIL被释放。

也可以从函数文档中获得:

的threads_init()函数在gobject模块中初始化Python线程的使用。该函数与gtk.gdk.threads_init()函数不同,因为该函数还初始化GDK线程。

基本上,您显式地告诉gobject模块您将使用线程并相应地对其进行初始化。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3782962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档