首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[D]于python多线程的有关问题

2012-03-27 
[D]于python多线程的问题Python code# coding:utf-8import threadimport timefrom socket import *import

[D]于python多线程的问题

Python code
# coding:utf-8import threadimport timefrom socket import *import osimport reimport threaddef Socket_Recv_heart(host,port,msg,BF):    print 'Begin to connect server and get the DevIpAddress'    try:        port = int(port)        address=(host,port)        print address        clientSocket=socket(AF_INET,SOCK_STREAM)        #创建采用TCP 协议的socket对象        clientSocket.connect(address)        #连接指定的服务器端    except:        print "Connect failed!"        while True:        clientSocket.send(msg)        msg=clientSocket.recv(BF)        if (len(msg) > 0):             print msg             time.sleep(3)def main():    thread.start_new_thread(Socket_Recv_heart('127.0.0.1',7070,'ccc',1024),())    thread.start_new_thread(Socket_Recv_heart('127.0.0.1',7071,'ccc',1024),())if __name__ == '__main__':    main()


为什么我这段代码只执行了第一个线程,没有执行到第二个线程?是否我用法有误和用错函数?
----------------------------
Double行动:
原帖分数:20
加分:20

[解决办法]
thread.start_new_thread(function, args[, kwargs]) 
你第一个参数就不对啦。另外,建议用高级模块threading,比较容易理解组织,网上范例也多...
[解决办法]
很可能你的程序运行后就抛出异常了。最好把详细的信息都贴出来。

按照分析,你的所谓第一个线程其实只是一个函数调用,并没有创建任何线程。在创建第一个线程时,第一个参数是那个线程函数的返回值。

热点排行