在python中线程化

时间:2012-01-26 23:08:30

标签: python multithreading

gui冻结了,所以我试着穿线,它仍然冻结在我身上。我是不是把它搞错了?

更新代码:http://pastie.org/3259900

在这个中加入线程的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

你的线程类应该是这样的:

class workingthread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        while 1:
            chat = skype.CreateChatWith(name)
            chat.SendMessage(message)

答案 1 :(得分:0)

开始编辑: 我最初认为你的问题是性能问题,而不是你的Python代码构建方式的问题。基于几个月前在波士顿Python聚会上讨论的内容,我仍然认为我的回答可能对您有所帮助。 结束编辑:

我对Python线程的理解是,至少在使用CPython时,每个线程都依赖于GIL(全局解释器锁),因此每个线程一次运行一个。如果您使用多个进程,情况并非如此。一些Python的发行版试图解决GIL问题,但不是CPython。

现在,如果您在C中实现线程并使用其中一个Python C接口来访问该代码,那些线程可以同时运行,仅依赖于处理器可用性,但不会被GIL阻止。