python中的多线程

本文探讨了Python中的多线程,包括主线程与子线程的执行顺序、线程安全问题以及锁的概念。通过生产者消费者问题阐述了多线程的优点,并举例说明了事件驱动、异步及LOCK在多线程中的应用。强调了不加锁可能导致的并发修改风险,以及锁在保证数据一致性的同时可能带来的效率下降和死锁问题。
摘要由CSDN通过智能技术生成
线程

线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)
它被包含在进程之中,是进程中的实际运作单位。一个进程中可以并发多个线程
每条线程并行执行不同的任务
(线程是进程中的一个实体,是被系统独立调度和分派的基本单元)
每一个进程启动时都会最先产生一个线程,即主线程
然后主线程会再创建其他的子进程

例子:看电影和听音乐会同时开始,然后按照各自的沉睡时间进行输出
import threading
from  time import ctime,sleep
def music(a):
    for i in range(2):
        print 'I was listening to %s. %s' %(a,ctime())
        sleep(1)
def movie(b):
    for i in range(2):
        print 'I  was watching to %s. %s' %(b,ctime())
        sleep(5)
# music('双子')
# movie('迷雾')
t1 = threading.Thread(target=music,args=('双子',))
t1.start()
t2 = threading.Thread(target=movie,args=('迷雾',))
t2.start()
print 'all over %s ' %ctime()

这里写图片描述
这里面包含两个线程,一个主线程,一个子线程
主线程会先执行

from  threading import Thread
def Foo(arg):
    print arg
print 'before'
#线程和函数建立关系
t1 = Thread(target=Foo,args=(1,))
t1.start()
print 'after'

这里写图片描述
这里面包含三个线程,一个主线程,两个子线程
会先执行主线程

from  threading import Thread
def Foo(arg):
    print arg
print 'before'
#线程和函
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值