2012-01-26 60 views
-1

桂被冻结,所以我尝试线程和它的对我仍然冻结。我是否对某些东西进行了不恰当的穿线?线程在python

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

什么是将线程在这一点的最好方法是什么?

+0

我把你的问题是一个性能相关的,而不是实际的错误。 – octopusgrabbus 2012-01-26 23:24:34

+0

请将代码**寄到此**。如果对于合理的帖子来说太长了,那么编辑它;要问一个适当的问题,无论如何,你应该能够产生一个展现问题的最小例子。 – 2012-01-26 23:41:50

+0

任何人有任何想法? – user1152873 2012-01-27 01:54:16

回答

3

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

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

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

谢谢我修复了这部分内容。 – user1152873 2012-01-26 23:53:07

+0

这是否解决了这个问题?还是它仍然挂? – xkrz 2012-01-27 00:26:21

+0

它固定它的冻结部分,但我仍然试图找出我应该如何将线程放入这个节目笑。 – user1152873 2012-01-27 00:30:22

0

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

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

现在,如果你实现你的线程在C和使用Python I2C接口的一个访问代码,这些线程可以同时运行只在处理器可用性相关的,而不是由GIL举起。