|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 MSK 于 2017-6-7 14:58 编辑
下一篇:
后台进程
我们平时的程序都是单线程的,整个程序就像一条线一样执行下去。
如果我们要执行的某个任务需要重复很多次(比如下载一部3000页漫画 ),单线程的效率就一些低下了。
好了,废话不多说
threading模块第一讲:
【*】需要的模块 threading
【*】 创建线程
方法1:- thread = threading.Thread(target=function,
- args=None,
- name=None,
- kwargs=None,
- daemon=None)
- #target为需要调用(分身)的函数
- #args 为该函数的参数,以元组形式传入
- #name 为线程的名字,默认值为“Thread-N“,N是一个数字
- #kwargs 为该函数的参数,以字典方式传入{'参数':'参数值'}
- #daemon 是否设置为后台进程(守护进程),True 或 False
复制代码
方法二:继承并修改 threading.Thread 类
- import threading
- class My_thread(threading.Thread):
- def __init__(self,name,words):
- #name 为线程名,必须有
- self.words = words
- super().__init__(name = name) #注意:一定要显式的调用父类的初始化函数。
-
- def run(self):
- '''
- 重写父类run方法,在线程启动后执行该方法内的代码。
-
- '''
-
- for i in range(10):
- print(self.words)
- thread_1 = My_thread('thread_1','线程1')
- thread_2 = My_thread('thread_2','线程2')
- thread_1.start()
- thread_2.start()
- #输出
- >>> 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
- 线程1线程2
复制代码
#通过掉用start()方法启动线程
【*】获取进程名
以上面为例:
1. thread_1.name
2. thread_1.getName()
【*】设置进程名
thread_1.setName('名字')
【*】获取线程的标识符
Thread.ident
线程标识符是一个非零整数。
只有在调用了start()方法之后该属性才有效,否则它只返回None
【*】判断线程是否是激活的(alive)
Thread.is_alive()
Thread.isAlive()
从调用start()方法启动线程,到run()方法执行完毕或遇到未处理异常而中断 这段时间内,线程是激活的
#我发现这样也可以获取到一些线程信息
- >>> thread =
- def test():
- pass
- threading.Thread(target=test)
- >>> thread
- <Thread(Thread-3, initial)>
- >>> thread.start()
- >>> thread
- <Thread(Thread-3, stopped 26480)>
复制代码 |
评分
-
查看全部评分
|