python 多线程并发

已经学习python一段时间了,突然看到网上有说用python做并发测试的,在网上看了一些博客,感觉不明觉厉(完全不知道原理)。

后来在 点击打开链接 跟着案例运行了好几次,感觉就是一个大写的蒙逼啊!!!完全看不懂/(ㄒoㄒ)/~~。 

还好网上的大神很多,接着搜索了几个好的博客结合‘菜鸟教程’的案例,终于看到了一点曙光O(∩_∩)O~~。

 好了,说了这么多,总结一下: 使用Threading模块创建线程,直接从threading.Thread继承,然后重写__init__方法和run方法 	


run(): 用以表示线程活动的方法 	
start():启动线程活动 	
join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生 

在使用join的时候一定要引用线程,如: 
threads = [] for i in range(5): 	
        # 创建新线程(调用方法)  	
        t = ThreadImpl()
 	# 开启线程
	t.start()
	# 把线程加入threads中
	threads.append(t)
  for k in threads:
        # 等待线程完成
        k.join()
看下面的代码:
# coding=utf-8
import threading
import time


class ThreadImpl(threading.Thread):# 继承父类threading.Thread
    def __init__(self):
        threading.Thread.__init__(self)

    # 重写 run方法
    def run(self):
        self.test()

    # 要测试的逻辑代码
    def test(self):
        print "test"+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        x = 0
        for i in range(10):
            x += i*i
            time.sleep(1)
            print 'x='+str(x) + '; ' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

if __name__ == '__main__':
    # 定义线程数
    thread_count = 100
    # 定义线程集
    threads = []
    for i in range(5):
        # 创建新线程
        t = ThreadImpl()
        # 开启线程
        t.start()
        # 把线程加入threads中
        threads.append(t)
    for t in threads:
        # 等待线程完成
        t.join()
    print 'end:'+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值