Python 多线程

先贴出代码:

import time
import thread
import threading

def timer(tid, sleep_time):
    for i in xrange(0,5):
        print 'Thread:(%d) Time:%s/n'%(tid, time.ctime())
        time.sleep(sleep_time)
    thread.exit_thread()
    
 
def thread_main0():
    print ("thread_main")
    timer(0,1)
def thread_main1(time):
    print ("thread_main")
    timer(1,time)

if __name__=='__main__':
    threads = []
    threads.append(threading.Thread(target=thread_main0,args=()))
    threads.append(threading.Thread(target=thread_main1,args=(3,)))
    for i in range(len(threads)):
        threads[i].start()
    for i in range(len(threads)):
        threads[i].join()

结果:

Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
thread_mainthread_main

Thread:(0) Time:Tue Mar 11 15:41:29 2014/nThread:(1) Time:Tue Mar 11 15:41:29 2014/n

Thread:(0) Time:Tue Mar 11 15:41:30 2014/n
Thread:(0) Time:Tue Mar 11 15:41:31 2014/n
Thread:(1) Time:Tue Mar 11 15:41:32 2014/n
Thread:(0) Time:Tue Mar 11 15:41:32 2014/n
Thread:(0) Time:Tue Mar 11 15:41:33 2014/n
Thread:(1) Time:Tue Mar 11 15:41:35 2014/n
Thread:(1) Time:Tue Mar 11 15:41:38 2014/n
Thread:(1) Time:Tue Mar 11 15:41:41 2014/n
>>> 

几个地方:

1,启动线程的时候的参数传递的时候,当无参数的时候适用(),有参数的时候使用逗号分割,而仅仅有一个参数的时候最好也加上一个逗号,当参数是一个数组的时候,如果你不加上逗号,Python会将数组展开,就变成了传递了很多个元素,也就会报错了。

2,threads[i].join()  这个表示等待线程结束,如果没有这行,当程序还在运行的时候,你关闭程序没有任何提示;而加上这行,关闭住进程的时候会弹出线程还在执行是否继续关闭,意味着要等待该线程结束才能继续操作


参考:

Python多线程学习(一、线程的使用)   http://blog.csdn.net/lazy_tiger/article/details/3861844#

python的多线程操作  http://hi.baidu.com/unphp/item/dc351af3364717733c198b66




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值