Thread()
文章平均质量分 60
Arthur54271
人生苦短,我用Python
展开
-
Python3-根据线程(Thread数量来查看线程生命周期,第一种创建线程方法
import threading,time,random#time就是时间戳1970,'''查看线程数量,根据线程数量来查看线程生命周期。线程之间是并行的,但是主线程是最后死亡。'''def sing(): for i in range(3): print('正在唱歌。。。。%d'%i) # time.sleep(random.random()*...原创 2018-03-31 21:39:05 · 4466 阅读 · 0 评论 -
Python3-线程应用队列(生产者与消费者模式--多生产者VS多消费者)
#复杂的--多对多#生产者与消费者模式'''定义: 在并发编程中使用生产者和消费都模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。案例: 两个厨师对四个顾客 厨师做包子和顾客吃包子问题。 当生产的慢,消费的快的时候,get()会发生阻塞,等待 当生产的忙,消费的快的时候,get_nowa...原创 2018-04-02 14:22:29 · 1878 阅读 · 0 评论 -
Python3-线程应用队列(生产者与消费者模式--2生产者VS4消费者)
#两个厨师对四个顾客#生产者与消费者模式'''定义: 在并发编程中使用生产者和消费都模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。案例: 厨师做包子和顾客吃包子问题。 当生产的慢,消费的快的时候,get()会发生阻塞,等待 当生产的忙,消费的快的时候,get_nowait()会发生queue.Em...原创 2018-04-02 14:02:20 · 523 阅读 · 0 评论 -
Python3-线程中应用队列
#生产者与消费者模式'''1.队列(1)特点:先进先出(2)python2VSpython3python2: from Queue import queuepython3:from queue import Queuejoin--阻塞动作blocked--状态(3)使用Python的Queue模块中提供了同步的、线程安全的队列类a.FIFO----(First In Fi...原创 2018-04-02 09:33:07 · 848 阅读 · 0 评论 -
Python3-多线程死锁问题
#1、死锁:前提是有多个锁'''在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源时,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。'''#2、例子:#有两个人分别做“西兰花”和“红烧肉”,每个人都需要“锅”和“铲子”才能炒菜。import threading,timeclass XiLanHua_Thread(threadi...原创 2018-04-02 00:47:59 · 2288 阅读 · 0 评论 -
Python3-为多线程上锁
#在threading模块当中,定义一个Lock类,可以方便的处理锁定:(线程之间的锁是互斥的)#互斥锁'''当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制。线程同步能够保证多个线程安全访问“竞争资源”,最简单的同步机制就是引用互斥锁。互斥锁为资源引入一个状态:锁定/非锁定状态。某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其它线程不能更改;直到当前...原创 2018-04-01 23:35:00 · 1726 阅读 · 0 评论 -
Python3-列表(容器)当做实参传递到线程中(暂未加锁)
#列表(容器)当做实参传递到线程中(暂未加锁)#总结: ''' 在一个进程内的所有线程共享全局变量,能够在不适用其它方式的前提下完成多线程之间的数据共享 缺点:线程是对全局变量的随意更改可能造成多线程之间对全局变量引用比较混乱(线程安全成了问题) '''import threadingimport time,random,copydef work1(download_lis...原创 2018-04-01 17:00:33 · 342 阅读 · 0 评论 -
Python3-多线程共享全局变量
#多线程---全局变量----共享(线程并不像进程那样创建一个进程就Copy一次代码)from threading import Threadimport time,randomg_num = 100def work1(): global g_num for i in range(3): g_num += 1 time.sleep(ra...原创 2018-04-01 15:13:39 · 5387 阅读 · 1 评论 -
Python3-线程执行顺序问题(生命周期)
import threading#2、线程的执行顺序import timeclass MyThread(threading.Thread): def run(self): for i in range(3): time.sleep(1) msg = "I'm " + self.name + "@" + str(i) ...原创 2018-04-01 15:00:59 · 1763 阅读 · 0 评论 -
Python3-线程名字问题
import threading#1、线程名字class MyThread(threading.Thread): def run(self): print("%s正线程正在下载...."%(self.name))if __name__ == "__main__": # t = MyThread(name="downloadThread")#可以自定义给...原创 2018-04-01 14:56:46 · 5102 阅读 · 0 评论 -
多进程VS多线程
'''功能:进程,能够完成多任务,if 比如在一台能够同时运行多个QQ:线程,能够完成多任务,比如一个QQ中的多个聊天窗口。定义:进程是系统进行资源分配和调试的一个独立单位。线程是进程的一个实体,是CPU调用和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,但是它可以与同属于一个进程的其它线程共享进程所拥有的全部资源。区别:一个程序至少有...原创 2018-04-01 19:35:19 · 154 阅读 · 0 评论 -
Python3-子线程中传参
#子线程中传参'''根据t02.py中的sing\dance两个操作用两种创建线程的方法实现两个操作'''import threading,time,random# def sing():# for i in range(3):# print('正在唱歌。。。。%d'%i)# # time.sleep(random.random()*3)...原创 2018-03-31 22:30:40 · 2257 阅读 · 0 评论 -
Python3-第二种创建线程方法
'''线程创建方式:1、 t1=threading.Thread(target=sing)2、定义自定义类,继承threading.Thread类、复写run()方法'''import threading,time,randomclass MyThread(threading.Thread): def run(self): #线程要干的事情 fo...原创 2018-03-31 21:56:41 · 516 阅读 · 0 评论 -
Python3-threading.local()代替普通全局变量
##threading.local():针对各个线程的一个全局对象'''在多线程环境下,一每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其它线程,而全局变量的修改必需加锁(阻塞--效率低)但是在使用局部变量的时候,就在函数间调用的时候,传递起来很麻烦。每个函数一层一层调用这个传递过来的参数,很麻烦。用全局变量,不安全,...原创 2018-04-02 16:25:09 · 2173 阅读 · 0 评论