进程与线程

来源:互联网 发布:coco文字识别软件 编辑:程序博客网 时间:2024/04/28 05:25

进程 线程 是资源的集合 要操作CPU,必须先创建一个线程 是操作系统最小的调度单位,是一串指令的集合 内存独立 内存共享 启动速度慢 两者运行后,没有可比性 启动速度快 仅能操作子进程 同一进程下的线程之间可以直接交流 创建新进程需要对其父进程进行一次克隆 可以控制和操作同一进程下的其它线程 对父进程的修改不会影响到其它子进程 主线程的修改可能会影响到其它线程出问题 两个进程通信,必须通过中间代理来实现



最简多线程示例

import threadingdef run(num):    print('task ', num)    time.sleep(2)t1 = threading.Thread(target=run, args=('t1',))t2 = threading.Thread(target=run, args=('t2',))t1.start()t2.start()



多线程类【继承式写法】

clas s Mythread(threading.Thread):    def __init__(self, num):        super(Mythread, self).__init__()        self.num = num    def run(self):        print('task ', self.num)t1 = Mythread('t1')t2 = Mythread('t2')t1.start()t2.start()



默认情况 主线各不会等待子线程执行完

def run(num):    print('task ', num)    time.sleep(2)    print('执行完? %s', num)ta = time.time()# tobjs = []for i in range(20):    t = threading.Thread(target=run, args=(i,))    t.start()print( time.time() - ta)



等待子线程执行完成,实际上这就成为了串行执行

tobjs = []for i in range(4):    t = threading.Thread(target=run, args=('t_%s' %i,))    t.setDaemon(True)  #把当前线程设置为守护线程    t.start()    tobjs.append(t)for t in tobjs:    t.join()



循环方式多线程

import threadingimport time, osdef run(n):    print('task ', n, threading.current_thread())    time.sleep(2)a = time.time()tobjs = []for i in range(4):    t = threading.Thread(target=run, args=('t_%s' %i,))    # 把当前线程设置为守护线程 一定要在start之前    t.setDaemon(True)    t.start()#    tobjs.append(t)# for t in tobjs:#     t.join()# 可替换joinwhile threading.active_count() != 1:    passelse:    print('----all threads done----')print('use_time: ', time.time() - a, threading.current_thread(),threading.active_count())
  1>. 守护线程隶属于主线程  2>. 此模式下,程序会等待主线程执行完毕就退出;不会等待守护线程执行完成,再退出。



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电信手机号无法打电话怎么办 新手机号无法注册怎么办 电信手机怎么办流量包 qq华夏到监牢怎么办 炫舞被骗2900怎么办 qq好友申诉后怎么办 无好友辅助申请怎么办 辅助申诉成功后怎么办 qq绑不了手机号怎么办 新办号码有微信怎么办 两手机互换号后微信怎么办 手机申请不了qq怎么办 快手账号保护了怎么办 qq号过期登不上怎么办 xp 登陆界面不见了怎么办 手机号qq 别人登录怎么办 qq号申请频繁怎么办 qq号实名验证怎么办 陌陌没法注册怎么办 腾讯q币充值错误怎么办 手机号码注册微信号怎么办 q币充错了号怎么办 微信超额度提现都不可以怎么办 微信发红包转账限额怎么办 银行卡没设密码怎么办 宜人贷逾期一天怎么办 快手实名已认证怎么办 爱奇艺充会员没有银行卡怎么办 手机qq内存太大怎么办 借呗逾期半年怎么办 支付宝支付错误怎么办 小米6支付宝闪退怎么办 验证码发送失败怎么办 支付宝升级后打不开怎么办 steam支付宝失败怎么办 支付宝无响应怎么办 花呗加载失败怎么办 吃鸡平台无效怎么办 悦支付登录不了怎么办 微信里的钱超额怎么办 qq不能发红包怎么办