惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
Y
Y Combinator Blog
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Jina AI
Jina AI
B
Blog RSS Feed
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
D
Docker

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
什么是同步异步,同步异步的区别-互联网IT百科
2021-11-10 · via 老董笔记

  同步在感觉上容易让人觉得是一起开始,在正常的人类沟通中说同步就是在表达一起开始一起结束,但是在计算机领域同步并不是这个意思。

  在编程中说的同步是表达不同的操作要有步骤、有顺序。核心在于多个任务按顺序等着1个个执行。概念听起来跟抽象,我们用例子说明。

  例1:

  以抓取数据为例,我们发1个请求去获取网页,然后就得等着,等这个网页从服务器端通过网线穿越千山万水最终抵达你的电脑上后,代码接下来才可以去往下执行。


def  get_html():
    """
      获取网页
    """

def do_other():
  """
    其他任务
  """

def main():
    get_html()
    do_other()

  main函数可以视为调用方,里面执行了2个函数,如果第一个get_html函数未结束的话后面的do_other无法运行。这个就是同步机制,后面的任务得等前面的任务。简而言之:同步就是代码调用io操作时须等待io操作完成后才返回的调用方式。(抓取数据是网络IO)

  上述例子如果用1个子线程去完成do_other任务,那么do_other可以不用等get_html完成就可以执行,因为多线程之间可以并发运行,这种现象就是异步机制。异步就是无序的,多个任务并没有按顺序一个个等着执行。

def  get_html():
    """
      获取网页
    """

def do_other():
  """
    其他任务
  """

def main():
    get_html()
    threading.Thread(do_other)

  同步和异步体现的是多个任务的执行方式是怎么样的,并不受制于单线程或者多线程。上述虽然是通过多线程实现了异步,但是单线程内也能实现异步(在python里借助yield来让出CPU)!

  例2:

  python里多线程修改同1个全局变量时需要加锁,因为修改1个变量不是一步到位的而是经历了很多步骤期间会产生临时变量,多个线程操作时候可能把数据搞错乱。

  加锁就是为了让1个线程操作变量时其他线程不可以操作,这样可以保证数据不会出错。这种场景也常说为了保持数据同步多线程操作需要加锁!其实表达的是各个线程的操作要同步有序。

  人类理解1个概念以后喜欢灵活的去使用它来描述一些现象,比如说人拉的屎很臭,也可以说人的脾气很臭。人们随心所欲的使用一个概念会让人产生误解,只要理解了概念的原始意思,就不纠结一些使用场景了。

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会