[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,比较容易理解组织,网上范例也多...
[解决办法]
很可能你的程序运行后就抛出异常了。最好把详细的信息都贴出来。
按照分析,你的所谓第一个线程其实只是一个函数调用,并没有创建任何线程。在创建第一个线程时,第一个参数是那个线程函数的返回值。