python多线程队列-Python进阶【第二篇】多线程、消息队列queue

标签:

1.Python多线程、多进程

目的提高并发

1.一个应用程序,可以有多进程和多线程

2.默认:单进程,单线程

3.单进程,多线程

IO操作,不占用CPU

python的多线程:IO操作,多线程提供并发

计算性操作

多进程提高并发

4.GIL,全局解释器锁

总结:

多进程,多线程,提供并发

IO密集型:多线程

计算密集型:多进程

2.threading模块

threading模块对象

描述

Thread

表示一个线程的执行的对象

Lock

锁原语对象

RLock

可重入锁对象。使单线程可以再次获得已经获得了的锁(递归锁定)

Event

通用的条件变量。多个线程可以等待某个事件的发生,在事件发生后,所有的线程都会被激活

BoundedSemaphore

每次允许几个线程通过

Timer

等待多久在开始运行

3.如何创建一个线程

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

# 1.先导出threading模块

import threading

import time

def f1(arg):

time.sleep(2)

print(arg)

for i in range(10):

# 2.创建一个线程对象

t = threading.Thread(target=f1,args=(i,))

# 创建一个线程那你想让它执行那些操作呢,就是target指定

# 假设上面的f1是一个函数,那么如果函数可以传参数就用args=(参数1,参数2)

t.start()

# t.start()

# 并不代表当前线程会被立即执行

# setDaemon方法,主进程执行完就退出不在等待子进程结束

# t.setDaemon(True)

# 表示主线程到此等待,知道子线程执行完毕

t.join()

print("end")

# 默认情况下主线程不会等待子线程t.start()执行完,而是直接执行下面的print("end"),但是程序不会退出,而是等子进程执行结束后才退出程序

标签:

原文地址:http://www.cnblogs.com/ITOps/p/5895790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值