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

关于线程

时间:2019-08-26 14:44:04      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:调度   系统   通过   机制   状态   任务   重写   class   创建线程   

协程:所与要的线程:单线程,方式:同步,实现:异步程序级别:函数,实现机制:事件循环+协程 应用场景:io密集任务

协程

yield from通常用在什么地方呢?在协程中,只要是和IO任务类似的、耗费时间的任务都需要使用yield from来进行中断,达到异步功能!

@asyncio.coroutine装饰器是协程函数的标志,我们需要在每一个任务函数前加这个装饰器,并在函数中使用yield from yield from 类似for i in range()

Import asycio 中 yield from 替换为await

新语法@asyncio.coroutine替换为async

Yield from

 

 

Import threading

#线程调用一定要start方法启动线程 结束

For i intherads

  1. jion()等待线程完成

继承创建线程一定重写父类run方法

锁单线程一般不怎么用到 锁的好处确保了某段关键代码只能由一个线程重头到尾完整执行 保密性

锁的坏处:阻止了多线程并发运行,效率大大降低,由于可以纯在多个锁不同线程持有不同的锁并且试图获取对方的锁,可能会出现死锁

每个线程一定会有一个名字,无法控制线程的调度,通过其他方法影响线程调度,死锁 互斥 生产者和消费者

同步就是协同步调按照预定的先后顺序运行eg:你说完我在说

并发不是同步在程序中

线程的几种状态:新建 就绪 运行态 死亡

等待(阻塞)

线程池:

  • 我们把任务放进队列中去,然后开N个线程,每个线程都去队列中取一个任务,执行完了之后告诉系统说我执行完了,然后接着去队列中取下一个任务,直至队列中所有任务取空,退出线程。

使用线程池:

  • 由于线程预先被创建并放入线程池中,同时处理完当前任务之后并不销毁而是被安排处理下一个任务,因此能够避免多次创建线程,从而节省线程创建和销毁的开销,能带来更好的性能和系统稳定性。

关于线程

标签:调度   系统   通过   机制   状态   任务   重写   class   创建线程   

原文地址:https://www.cnblogs.com/Inti/p/11412215.html

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