python 多线程总结(一)

使用Python已经有段时间了,一直想学一下多线程编程,一直被耽搁,这次好好学习一下,写篇博客,作为以后的参考,好记性不如烂笔头,这句话的理解越来越深刻。参考《Python 标准库》,来写这篇文章的,有不足的地方,大家可以提出。

python多线程有多种方法,这里只是写threading的方法,个人觉得,学会一种其他的就容易理解,现在开始正文。

一、Thread对象。使用thread最简单的方法就是用一个目标函数实例化一个Thread对象,并调用start()让它开始工作,代码如下:

import threading

import time


def worker():

print 'worker'

time.sleep(1)

threads = []

for i in range(5):

t = threading.Thread(target = worker)

threads.append(t)

t.start()

结果如下:

worker

worker

worker

worker

worker

[Finished in 1.2s]

解释:很简单的,调用了5个线程,执行了worker函数,并且打印出worker,有兴趣的同学,可以不使用线程,只是循环5次调用worker函数,打印worker,执行时间较长,多线程的效率高很多。多线程的原理就是主函数只要创建线程就可以了,线程来执行函数,所以创建线程时间很短。而不使用多线程的情况,主函数需要在每次循环中调用worker函数,打印worker结束后,才能执行第二次循环,然后再打印,以此类推,所以执行时间较长,个人认为这是多线程的思想,以前不理解,所以记录下来,有错误的请大家指正。

 二,传递参数。创建一个线程,并且向它传递参数,告诉它需要完成什么工作,这会很有用,下面的代码就是传递了一个参数,线程打印出这个参数,代码如下:

import threading
import time

def worker(num):
print 'worker: ',str(num)
time.sleep(1)

threads = []

for i in range(5):

t = threading.Thread(target = worker,args = (i,))
threads.append(t)
t.start()

结果如下:

worker:  0

worker:  1

worker:  2

worker:  3

worker:  4

[Finished in 1.4s]

解释:代码很简单,应该很容易看的懂,这个地方着重注意是传递参数的方法,args = (),务必注意是传递的元组,如果只有一个参数,则需要注意参数后加","。

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值