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

多线程

时间:2018-08-12 23:37:57      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:执行   缺点   发送   art   进程   put   sleep   wait   iss   

进程:

  优点:同时利用多个cpu,能够同时进行多个操作

  缺点:消耗资源(重新开辟内从空间)

线程:

  优点:共享内存,IO操作的时候m,创造并发操作

  缺点:抢占资源

进程不是越多越好,cpu个数=进程个数

线程也不是越多越好,请求上下文切换耗时

 

线程锁 threading.Rlock  和 threading.lock

threading.Event

Event 是线程通信最间的机制之一,一个线程发送一个event 信号,其他的线程则等待这个信号。用于主线程控制其他线程的执行,Events 管理一个flag,这个flag可以使用set(),

设置成True或者使用clear()重置为false,wait()则用于阻塞,在flag为True之前,flag默认为False

Event.wait([timeout]):堵塞线程,直到Event对象内部标识位被设计为True或超时

Event.set():将标识位设为True

Event.clear():将标识伴设为False

Event.isSet:判断标识位是否为True

 

创建线程

import time

import threading

  def f0():

    

  def f1(a1):

    time.sleep(10)

    f0()

t = threading.Thread(target=f1,args=(123,))

t.setDaemon(True)   ##主线程是否等待子线程

t.start()

print(‘111‘)

t.join()  # 一个一个执行,括号内可以传入参数,等待这个参数的时间如果上一个线程任务没有执行完,直接执行下一个

print(‘222‘)

 

event 事件

import threading

def do(event):

  print(‘红灯‘)

  event.wait()

  print(‘红灯‘)

 

event_obj = threading.Event()

for i in rang(10):

  t = threading.Thread(target=do,args=(event_obj,))

  t.start()

 

event_obj.clear()

inp =input(‘输出‘:)

if inp ==‘True‘:

  event_obj.set()

 

多线程

标签:执行   缺点   发送   art   进程   put   sleep   wait   iss   

原文地址:https://www.cnblogs.com/huangguabushihaogua/p/9465325.html

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