第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

Python3 加C# 并發(fā)編程!強(qiáng)強(qiáng)組合!會(huì)產(chǎn)生什么樣的化學(xué)反應(yīng)?

標(biāo)簽:
Python

1.进程篇

官方文档:https://docs.python.org/3/library/multiprocessing.html

1.1.进程(Process)

Python的进程创建非常方便,看个案例:(这种方法通用,fork只适用于Linux系)

进群:548377875  即可获取数十套PDF哦!

webp

其他参数可以参考源码 or 文档,贴一下源码的 init方法:

def__init__(self,group=None,target=None,name=None,args=(),kwargs={},*,daemon=None)

扩展: name:为当前进程实例的别名

p.is_alive() 判断进程实例p是否还在执行

p.terminate() 终止进程(发 SIGTERM信号)

上面的案例如果用OOP来实现就是这样:(如果不指定方法,默认调Run方法)

webp

1.1.源码拓展

现在说说里面的一些门道(只像用的可以忽略)

新版本的封装可能多层,这时候可以看看Python3.3.X系列(这个算是Python3早期版本了,很多代码都暴露出来,比较明了直观)

webp

webp

关于断言的简单说明:(别泛滥)

如果条件为真,它什么都不做,反之它触发一个带可选错误信息的AssertionError

webp

1.2.进程池

多个进程就不需要自己手动去管理了,有Pool来帮你完成,先看个案例:

webp

图示:(join可以指定超时时间,eg: p.join(1))

webp

调用 join()之前必须先调用 close(),调用 close()之后就不能继续添加新的 Process了

1.3.源码拓展

验证一下Pool的默认大小是CPU的核数,看源码:

multiprocessing.pool.py

webp

来看个例子:(和JQ很像)

webp

webp

大家这么急,那就先推Net的,Python过几天再推

其实逆天现在Coding已经是80%变成Python了,20%才是Net,也不确定是否一直在Net界干下去,所以只能尽可能的在说新知识的同时,尽量把脑子里面Net相关的内容教给大家,万一跨行业也算对得起大家的厚爱了(这个我从来不强求,反正什么编程语言都一样,顺其自然~)

NetCore并发编程

示例代码:https://github.com/lotapp/BaseCode/tree/master/netcore/4_Concurrency

先简单说下概念(其实之前也有说,所以简说下):

webp

webp

然后补充说下Task异常的问题,当你await的时候如果有异常会抛出,在第一个await处捕获处理即可

如果 async和 await就是理解不了的可以这样想: async就是为了让 await生效(为了向后兼容)

webp

一个async方法被await调用后,当它恢复运行时就会回到原来的上下文中运行。

如果你的Task不再需要上下文了可以使用: task.ConfigureAwait(false),eg:写个日记还要啥上下文?

逆天的建议是:在核心代码里面一种使用 ConfigureAwait,用户页面相关代码,不需要上下文的加上

其实如果有太多await在上下文里恢复那也是比较卡的,使用 ConfigureAwait之后,被暂停后会在线程池里面继续运行

再看一个场景:比如一个耗时操作,我需要指定它的超时时间:

webp

异步这块简单回顾就不说了,留两个扩展,你们自行探讨:

进度方面的可以使用 IProgress,就当留个作业自己摸索下吧~

使用了异步之后尽量避免使用 task.Wait or task.Result,这样可以避免死锁

Task其他新特征去官网看看吧,引入到此为止了。

2.并行编程(Parallel)

这个其实出来很久了,现在基本上都是用 PLinq比较多点,主要就是:

数据并行:重点在处理数据(eg:聚合)

任务并行:重点在执行任务(每个任务块尽可能独立,越独立效率越高)

数据并行

以前都是 Parallel.ForEach这么用,现在和Linq结合之后非常方便 .AsParallel()就OK了

说很抽象看个简单案例:

webp

当然了,如果你就是对顺序有要求可以使用: .AsOrdered()

webp



作者:919b0c54458f
链接:https://www.jianshu.com/p/0e6652cb6e01


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消