线程的调用以及join方法,setDaemon方法和继承式调用,复习

线程的调用以及join方法

进程是操作系统最重要的概念

无论你启动多少个线程、你有多少个cpu,python在执行过程的时候会淡定的在同一时刻只允许一个线程运行

import threading  线程

t1=threading.Threadi()  开一个子线程对象

t1.start()  做一件事情,处理一个任务

心得:进程和线程都是过程,区别在于一个抽象一个具体

子线程和主线程是并驾齐驱

一个进程内的所有线程感知上是一起运行的

t.join()  t不执行完,主线程不执行,不往下执行,其它子线程对象来执行属于主线程

setDaemon方法和继承式调用

函数、类、模块有作用域权限

扫描二维码关注公众号,回复: 6386933 查看本文章

t.setDaemon(True)  注意:一定在start之前设置

守护进程:子线程是否守护主线程,你有我有,你无我无

继承式调用run():定义每个线程要运行的函数

复习

程序需要通过切换实现并发,则需要进程

进程在内存中是独立的,并发消耗时间比线程多百倍左右

进程是做资源管理的,是管理线程的,程序真正执行的是线程

主线程执行完进程不一定结束,可能要等子线程

threading.enumerate() 返回一个包含正在运行的线程的list,正在运行指线程启动后、结束前,不包括启动前和终止后的线程

import threading
import time
def music():
    print('开始听音乐%s'%time.ctime())
    time.sleep(3)
    print('结束听音乐%s' % time.ctime())
def game():
    print('开始打游戏%s' % time.ctime())
    time.sleep(5)
    print('结束打游戏%s' % time.ctime())
if __name__ == '__main__':
    t1=threading.Thread(target=music)
    t2=threading.Thread(target=game)
    t1.start()
    # t1.join()
    t2.start()
    # t2.join()
    print(threading.enumerate())
    print('结束')
View Code

猜你喜欢

转载自www.cnblogs.com/jintian/p/10995514.html