
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
并发编程开发是目前大多数软件开发项目都需要满足的一个开发需求,而今天我们就通过案例分析来了解一下,并发编程开发需要注意哪些问题。
因为协程跑在单个线程内,所占用的CPU资源有限,所以多协程并不能提升计算性能。不仅如此,因为多了程序本身的调度开销,计算密集型程序的性能反而会下降。
此外,协程代码中决不能出现阻塞,否则整个线程都会停下来等待该操作完成,这就麻烦了。
协程适合用于IO密集型任务,可用于简化异步IO的callbackhell。例如Python的asyncio就是用协程实现的。
并发并行
由此,又引出两个名词:
并发(Concurrent):多个任务交替进行。
并行(Parallel):多个任务同时进行。
Note:进程和线程都可能是并发或并行的。关键看你程序的运行状态。多核是并行的前提。并发则只要求交替执行,因此单核也没问题。
同步异步
同步:不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,称这些程序单元是同步执行的。
多线程编程中,所有修改共享变量的行为,都必须加锁,保证顺序执行,保证同步。或者加原子锁,保证该修改操作是原子的。
同步意味着有序
异步:为完成某个任务,不同程序单元之间过程中无需通信协调,也能完成任务的方式。
不相关的程序单元之间可以是异步的。比如爬虫下载网页
异步意味着无序
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。