码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记——线程threading

时间:2018-04-05 20:58:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:帮助   obj   blog   安全性   name   condition   数字   同步   2.3   

1 线程threading

1.1 基本概述

也被称为轻量级的进程。

线程是计算机多任务编程的一种方式,可以使用计算机的多核资源。

线程死应用程序中工作的最小单元

1.2 线程特点

(1)进程的创建开销较大,线程创建开销较小

(2)一个进程中可以包含多个线程

(3)线程依附于进程的存在,多个线程共享进程的资源

(4)每个线程也拥有自己独特的特征,比如ID、指令集

注意:

(1)进程有独立的空间,数据安全性较高

(2)线程使用进程的资源,即一般使用全局变量的方式进行线程间通信,所以需要较复杂的同步互斥

(3)多个不相关的线程功能最好不要凑到一起形成线程

2 线程模块

Thread module emulating a subset of Java‘s threading model

2.1 线程模块之类

Thread,Event, Lock, Rlock, Condition, [Bounded]Semaphore, Timer, local。

2.2 线程模块之方法

threading.currentThread(): 返回当前的线程变量。 
threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。 
threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

2.3 线程模块之常量

threading.TIMEOUT_MAX 设置threading全局超时时间。

3 Thread类

3.1 Thread类创建方法

class Thread(builtins.object)的Methods defined here:

Thread(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)

group:线程组,目前没有实现,为了将来实现ThreadGroup类的扩展而设置的。

target:要执行的方法,run()方法调用的对象

name:线程名,在默认情况下,命名为Thread-N(N为最小的十进制数字)

args:元组参数

kwargs:字典参数

3.2 Thread类的实例方法:

start():启动线程

join(self, timeout=None):等待线程结束,阻塞线程直到调用此方法的线程终止或到达指定的的timeout

is_alive():返回线程是否在运行,运行返回True;

isAlive:等价于is_alive()

getName():获取线程名字

setName():设置线程名字,在threading.Thread()的帮助文档中没有该方法,其他资料上有。

 

is/setDaemon(bool): 获取/设置是后台线程(默认前台线程(False))。(在start之前设置)

  如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,主线程和后台线程均停止
       如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
3.3 

 

python学习笔记——线程threading

标签:帮助   obj   blog   安全性   name   condition   数字   同步   2.3   

原文地址:https://www.cnblogs.com/gengyi/p/8724017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!