python的学习(七)----多线程编程(1)

来源:互联网 发布:only网络营销策划方案 编辑:程序博客网 时间:2024/05/16 09:54

python中的多线程编程(一)
    -------python核心编程学习
1. 多线程的作用
简而言之,多线程是并行处理相互独立的子任务,从而大幅度提高整个任务的效率。

2. Python中的多线程模块
Python中提供几个用于多线程编程的模块,包括thread,threading和Queue等

thread模块提供了基本的线程和锁的支持,除产生线程外,也提供基本的同步数据结构锁对象,其中包括:
start_new_thread(function, args kwargs=None)  产生一个新的线程来运行给定函数
allocate_lock()  分配一个LockType类型的锁对象
exit() 让线程退出
acquire(wait=None) 尝试获取锁对象
locked()  如果获取了锁对象返回TRUE,否则返回FALSE
release()  释放锁

threading提供了更高级别,功能更强的线程管理功能
Thread类 表示一个线程的执行的对象
Lock 锁原语对象
RLock 可重入锁对象,使单线程可以再次获得已经获取锁

queue模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构
可用于进程间的通讯,让各个线程之间共享数据
模块函数queue(size)  创建一个大小为size的Queue对象
queue对象函数 qsize()  返回队列大小
                empty()  队列为空返回True,否则返回False
                       put(item, block=0)  把ITEM放到队列中,block不为0,函数会一直阻塞到队列中
                get(block=0) 从队列中取一个对象,若果给block,函数会一直阻塞到队列中有对象为止