91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析同步與異步Python的區(qū)別與概述

Q4MP_gh_c472c21 ? 來(lái)源:InfoQ技術(shù)實(shí)驗(yàn)室 ? 作者:Miguel Grinberg ? 2021-04-25 13:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

你是否聽(tīng)到人們說(shuō)過(guò),異步Python代碼比普通(或同步)Python代碼更快?果真是那樣嗎?

1、“同步”和“異步”是什么意思?

Web應(yīng)用程序通常要處理許多請(qǐng)求,這些請(qǐng)求在很短的時(shí)間段內(nèi)來(lái)自不同的客戶端。為避免處理延遲,必須考慮并行處理多個(gè)請(qǐng)求,這通常稱為“并發(fā)”。

在本文中,我將繼續(xù)使用Web應(yīng)用程序作為例子,但是要記住還有其它類型的應(yīng)用程序也從并發(fā)完成多個(gè)任務(wù)中獲益,因此這個(gè)討論并不僅僅是針對(duì)Web應(yīng)用程序的。

術(shù)語(yǔ)“同步”和“異步”指的是編寫(xiě)并發(fā)應(yīng)用程序的兩種方式。所謂的“同步”服務(wù)器使用底層操作系統(tǒng)支持的線程和進(jìn)程來(lái)實(shí)現(xiàn)這種并發(fā)性。下面是同步部署的一個(gè)示意圖:

a30e68b6-a57e-11eb-aece-12bb97331649.png

在這種情況下,我們有5臺(tái)客戶端,都向應(yīng)用程序發(fā)送請(qǐng)求。這個(gè)應(yīng)用程序的訪問(wèn)入口是一個(gè)Web服務(wù)器,通過(guò)將服務(wù)分配給一個(gè)服務(wù)器worker池來(lái)充當(dāng)負(fù)載均衡器,這些worker可以實(shí)現(xiàn)為進(jìn)程、線程或者兩者的結(jié)合。這些worker執(zhí)行負(fù)載均衡器分配給他們的請(qǐng)求。你使用Web應(yīng)用程序框架(如Flask或Django)編寫(xiě)的應(yīng)用程序邏輯運(yùn)行在這些worker中。

這種類型的方案對(duì)于有多個(gè)CPU的服務(wù)器比較好,因?yàn)槟憧梢詫orker的數(shù)量設(shè)置為CPU的數(shù)量,這樣你就能均衡地利用你的處理器核心,而單個(gè)Python進(jìn)程由于全局解釋器鎖(GIL)的限制無(wú)法實(shí)現(xiàn)這一點(diǎn)。

在缺點(diǎn)方面,上面的示意圖也清楚展示了這種方案的主要局限。我們有5個(gè)客戶端,卻只有4個(gè)worker。如果這5個(gè)客戶端在同一時(shí)間都發(fā)送請(qǐng)求,那么負(fù)載均衡器會(huì)將某一個(gè)客戶端之外的所有請(qǐng)求發(fā)送到worker池,而剩下的請(qǐng)求不得不保留在一個(gè)隊(duì)列中,等待有worker變得可用。因此,五分之四的請(qǐng)求會(huì)立即響應(yīng),而剩下的五分之一需要等一會(huì)兒。服務(wù)器優(yōu)化的一個(gè)關(guān)鍵就在于選擇適當(dāng)數(shù)量的worker來(lái)防止或最小化給定預(yù)期負(fù)載的請(qǐng)求阻塞。

一個(gè)異步服務(wù)器的配置很難畫(huà),但是我會(huì)盡力而為:

a336e69c-a57e-11eb-aece-12bb97331649.png

這種類型的服務(wù)器運(yùn)行在單個(gè)進(jìn)程中,通過(guò)循環(huán)控制。這個(gè)循環(huán)是一個(gè)非常有效率的任務(wù)管理器和調(diào)度器,創(chuàng)建任務(wù)來(lái)執(zhí)行由客戶端發(fā)送的請(qǐng)求。與長(zhǎng)期存在的服務(wù)器worker不同,異步任務(wù)是由循環(huán)創(chuàng)建,用來(lái)處理某個(gè)特定的請(qǐng)求,當(dāng)那個(gè)請(qǐng)求完成時(shí),該任務(wù)也會(huì)被銷(xiāo)毀。任何時(shí)候,一臺(tái)異步服務(wù)器都會(huì)有上百或上千個(gè)活躍的任務(wù),它們都在循環(huán)的管理下執(zhí)行自己的工作。

你可能想知道異步任務(wù)之間的并行是如何實(shí)現(xiàn)的。這就是有趣的部分,因?yàn)橐粋€(gè)異步應(yīng)用程序通過(guò)唯一的協(xié)同多任務(wù)處理來(lái)實(shí)現(xiàn)這點(diǎn)。這意味著什么?當(dāng)一個(gè)任務(wù)需要等待一個(gè)外部事件(例如一個(gè)數(shù)據(jù)庫(kù)服務(wù)器的響應(yīng))時(shí),不會(huì)像一個(gè)同步的worker那樣等待,而是會(huì)告訴循環(huán)它需要等待什么,然后將控制權(quán)返回給它。循環(huán)就能夠在這個(gè)任務(wù)被數(shù)據(jù)庫(kù)阻塞的時(shí)候發(fā)現(xiàn)另外一個(gè)準(zhǔn)備就緒的任務(wù)。最終,數(shù)據(jù)庫(kù)將發(fā)送一個(gè)響應(yīng),而那時(shí)循環(huán)會(huì)認(rèn)為第一個(gè)的任務(wù)已經(jīng)準(zhǔn)備好再次運(yùn)行,并將盡快恢復(fù)它。

異步任務(wù)暫停和恢復(fù)執(zhí)行的這種能力可能在抽象上很難理解。為了幫助你應(yīng)用到你已經(jīng)知道的東西,可以考慮在Python中使用await或yield關(guān)鍵字這一方法來(lái)實(shí)現(xiàn),但你之后會(huì)發(fā)現(xiàn)這并不是唯一實(shí)現(xiàn)異步任務(wù)的方法。

一個(gè)異步應(yīng)用程序完全運(yùn)行在單個(gè)進(jìn)程或線程中,這可以說(shuō)是令人吃驚的。當(dāng)然,這種類型的并發(fā)需要遵循一些規(guī)則,因此你不能讓一個(gè)任務(wù)占用CPU太長(zhǎng)時(shí)間,否則,剩余的任務(wù)會(huì)被阻塞。為了異步執(zhí)行,所有的任務(wù)需要定時(shí)主動(dòng)暫停并將控制權(quán)返還給循環(huán)。為了從異步方式獲益,一個(gè)應(yīng)用程序需要有經(jīng)常被I/O阻塞的任務(wù),并且沒(méi)有太多CPU工作。Web應(yīng)用程序通常非常適合,特別是當(dāng)它們需要處理大量客戶端請(qǐng)求時(shí)。

在使用一個(gè)異步服務(wù)器時(shí),為了最大化多CPU的利用率,通常需要?jiǎng)?chuàng)建一個(gè)混合方案,增加一個(gè)負(fù)載均衡器并在每個(gè)CPU上運(yùn)行一個(gè)異步服務(wù)器,如下圖所示:

a359ad6c-a57e-11eb-aece-12bb97331649.png

2、Python中實(shí)現(xiàn)異步的2種方法

我敢肯定,你知道要在Python中寫(xiě)一個(gè)異步應(yīng)用程序,你可以使用asyncio package,這個(gè)包是在協(xié)程的基礎(chǔ)上實(shí)現(xiàn)了所有異步應(yīng)用程序都需要的暫停和恢復(fù)特性。其中yield關(guān)鍵字,以及更新的async和await都是asyncio構(gòu)建異步能力的基礎(chǔ)。

Python生態(tài)系統(tǒng)中還有其它基于協(xié)程的異步方案,例如Trio和Curio。還有Twisted,它是所有協(xié)程框架中最古老的,甚至出現(xiàn)得比asyncio都要早。如果你對(duì)編寫(xiě)異步Web應(yīng)用程序感興趣,有許多基于協(xié)程的異步框架可以選擇,包括aiohttp、sanic、FastAPI和Tornado。

很多人不知道的是,協(xié)程只是Python中編寫(xiě)異步代碼的兩種方法之一。第二種方法是基于一個(gè)叫做greenlet的庫(kù),你可以用pip安裝它。Greenlets和協(xié)程類似,它們也允許一個(gè)Python函數(shù)暫停執(zhí)行并稍后恢復(fù),但它們實(shí)現(xiàn)這點(diǎn)的方式完全不同,這意味著Python中的異步生態(tài)系統(tǒng)分成兩大類。

協(xié)程與greenlets之間針對(duì)異步開(kāi)發(fā)最有意思的區(qū)別是,前者需要Python語(yǔ)言特定的關(guān)鍵字和特性才能工作,而后者并不需要。我的意思是,基于協(xié)程的應(yīng)用程序需要使用一種特定的語(yǔ)法來(lái)書(shū)寫(xiě),而基于greenlet的應(yīng)用程序看起來(lái)幾乎和普通Python代碼一樣。這非???,因?yàn)樵谀承┣闆r下,這讓同步代碼可以被異步執(zhí)行,這是諸如asyncio之類的基于協(xié)程的方案做不到的。

那么在greenlet方面,跟asyncio對(duì)等的庫(kù)有哪些?我知道3個(gè)基于greenlet的異步包:Gevent、Eventlet和Meinheld,盡管最后一個(gè)更像是一個(gè)Web服務(wù)器而不是一個(gè)通用的異步庫(kù)。它們都有自己的異步循環(huán)實(shí)現(xiàn),而且它們都提供了一個(gè)有趣的“monkey-patching”功能,取代了Python標(biāo)準(zhǔn)庫(kù)中的阻塞函數(shù),例如那些執(zhí)行網(wǎng)絡(luò)和線程的函數(shù),并基于greenlets實(shí)現(xiàn)了等效的非阻塞版本。如果你有一些同步代碼想要異步運(yùn)行,這些包會(huì)對(duì)你有所幫助。

據(jù)我所知,唯一明確支持greenlet的Web框架只有Flask。這個(gè)框架會(huì)自動(dòng)監(jiān)測(cè),當(dāng)你想要運(yùn)行在一個(gè)greenlet Web服務(wù)器上時(shí),它會(huì)自我進(jìn)行相應(yīng)調(diào)整,而無(wú)需進(jìn)行任何配置。這么做時(shí),你需要注意不要調(diào)用阻塞函數(shù),或者,如果你要調(diào)用阻塞函數(shù),最好用猴子補(bǔ)丁來(lái)“修復(fù)”那些阻塞函數(shù)。

但是,F(xiàn)lask并不是唯一受益于greenlets的框架。其它Web框架,例如Django和Bottle,雖然沒(méi)有g(shù)reenlets,但也可以通過(guò)結(jié)合一個(gè)greenlet Web服務(wù)器并使用monkey-patching修復(fù)阻塞函數(shù)的方式來(lái)異步運(yùn)行。

3、異步比同步更快嗎?

對(duì)于同步和異步應(yīng)用程序的性能,存在著一個(gè)廣泛的誤解——異步應(yīng)用程序比同步應(yīng)用程序快得多。

對(duì)此,我需要澄清一下。無(wú)論是用同步方式寫(xiě),還是用異步方式寫(xiě),Python代碼運(yùn)行速度是幾乎相同的。除了代碼,有兩個(gè)因素能夠影響一個(gè)并發(fā)應(yīng)用程序的性能:上下文切換和可擴(kuò)展性。

(1)上下文切換

在所有運(yùn)行的任務(wù)間公平地共享CPU所需的工作,稱為上下文切換,能夠影響應(yīng)用程序的性能。對(duì)同步應(yīng)用程序來(lái)說(shuō),這項(xiàng)工作是由操作系統(tǒng)完成的,而且基本上是一個(gè)黑箱,不需要配置或微調(diào)選項(xiàng)。對(duì)異步應(yīng)用程序來(lái)說(shuō),上下文切換是由循環(huán)完成的。

默認(rèn)的循環(huán)實(shí)現(xiàn)由asyncio提供,是用Python編寫(xiě)的,效率不是很高。而uvloop包提供了一個(gè)備選的循環(huán)方案,其中部分代碼是用C編寫(xiě)的來(lái)實(shí)現(xiàn)更好的性能。Gevent和Meinheld所使用的事件循環(huán)也是用C編寫(xiě)的。Eventlet用的是Python編寫(xiě)的循環(huán)。

高度優(yōu)化的異步循環(huán)比操作系統(tǒng)在進(jìn)行上下文切換方面更有效率,但根據(jù)我的經(jīng)驗(yàn),要想看到實(shí)際的效率提升,你運(yùn)行的并發(fā)量必須非常大。對(duì)于大部分應(yīng)用程序,我不認(rèn)為同步和異步上下文切換之間的性能差距有多明顯。

(2)擴(kuò)展性

我認(rèn)為異步更快這個(gè)神話的來(lái)源是,異步應(yīng)用程序通常會(huì)更有效地使用CPU、能更好地進(jìn)行擴(kuò)展并且擴(kuò)展方式比同步更靈活。

如果上面示意圖中的同步服務(wù)器同時(shí)收到100個(gè)請(qǐng)求,想一下會(huì)發(fā)生什么。這個(gè)服務(wù)器同時(shí)最多只能處理4個(gè)請(qǐng)求,因此大部分請(qǐng)求會(huì)停留在一個(gè)隊(duì)列中等待,直到它們被分配一個(gè)worker。

與之形成對(duì)比的是,異步服務(wù)器會(huì)立即創(chuàng)建100個(gè)任務(wù)(或者使用混合模式的話,在4個(gè)異步worker上每個(gè)創(chuàng)建25個(gè)任務(wù))。使用異步服務(wù)器,所有請(qǐng)求都會(huì)立即開(kāi)始處理而不用等待(盡管公平地說(shuō),這種方案也還會(huì)有其它瓶頸會(huì)減慢速度,例如對(duì)活躍的數(shù)據(jù)庫(kù)連接的限制)。

如果這100個(gè)任務(wù)主要使用CPU,那么同步和異步方案會(huì)有相似的性能,因?yàn)槊總€(gè)CPU運(yùn)行的速度是固定的,Python執(zhí)行代碼的速度總是相同的,應(yīng)用程序要完成的工作也是相同的。但是,如果這些任務(wù)需要做很多I/O操作,那么同步服務(wù)器只能處理4個(gè)并發(fā)請(qǐng)求而不能實(shí)現(xiàn)CPU的高利用率。而另一方面,異步服務(wù)器會(huì)更好地保持CPU繁忙,因?yàn)樗遣⑿械剡\(yùn)行所有這100個(gè)請(qǐng)求。

你可能會(huì)想,為什么你不能運(yùn)行100個(gè)同步worker,那樣,這兩個(gè)服務(wù)器就會(huì)有相同的并發(fā)能力。要注意,每個(gè)worker需要自己的Python解釋器以及與之相關(guān)聯(lián)的所有資源,再加上一份單獨(dú)的應(yīng)用程序拷貝及其資源。你的服務(wù)器和應(yīng)用程序的大小將決定你可以運(yùn)行多少個(gè)worker實(shí)例,但通常這個(gè)數(shù)字不會(huì)很大。另一方面,異步任務(wù)非常輕量,都運(yùn)行在單個(gè)worker進(jìn)程的上下文中,因此具有明顯優(yōu)勢(shì)。

綜上所述,只有如下場(chǎng)景時(shí),我們可以說(shuō)異步可能比同步快:

存在高負(fù)載(沒(méi)有高負(fù)載,訪問(wèn)的高并發(fā)性就沒(méi)有優(yōu)勢(shì));

任務(wù)是I/O綁定的(如果任務(wù)是CPU綁定的,那么超過(guò)CPU數(shù)目的并發(fā)并沒(méi)有幫助);

你查看單位時(shí)間內(nèi)的平均請(qǐng)求處理數(shù)。如果你查看單個(gè)請(qǐng)求的處理時(shí)間,你不會(huì)看到有很大差別,甚至異步可能更慢,因?yàn)楫惒接懈嗖l(fā)的任務(wù)在爭(zhēng)奪CPU。

4、結(jié)論

希望本文能解答異步代碼的一些困惑和誤解。我希望你能記住以下兩個(gè)關(guān)鍵點(diǎn):

異步應(yīng)用程序只有在高負(fù)載下才會(huì)比同步應(yīng)用程序做得更好;

多虧了greenlets,即使你用一般方式寫(xiě)代碼并使用Flask或Django之類的傳統(tǒng)框架,也能從異步中受益。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1304

    瀏覽量

    74453
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4967

    瀏覽量

    73954
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90022

原文標(biāo)題:同步與異步Python有何不同?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    普通異步電動(dòng)機(jī)與變頻電機(jī)的區(qū)別

    普通異步電動(dòng)機(jī)與變頻電機(jī)是現(xiàn)代工業(yè)中廣泛應(yīng)用的兩種電動(dòng)機(jī)類型,它們?cè)诮Y(jié)構(gòu)、工作原理、性能特點(diǎn)以及應(yīng)用場(chǎng)景上存在顯著差異。隨著變頻技術(shù)的普及,變頻電機(jī)的應(yīng)用范圍不斷擴(kuò)大,而普通異步電動(dòng)機(jī)因其成本優(yōu)勢(shì)仍在許多場(chǎng)合占據(jù)重要地位。本文將深入分析兩者的
    的頭像 發(fā)表于 02-27 16:51 ?312次閱讀
    普通<b class='flag-5'>異步</b>電動(dòng)機(jī)與變頻電機(jī)的<b class='flag-5'>區(qū)別</b>

    單片機(jī)中的串口通訊串行同步通信與串行異步通信

    的兩種基本串行通信方式包括同步通信和異步通信。 串行同步通信 同步通信(SYNC:synchronous data communicaTIon)是指在約定的通信速率下,發(fā)送端和接
    發(fā)表于 01-15 08:06

    請(qǐng)問(wèn)CW32系列ADC是否支持同步異步轉(zhuǎn)換?

    CW32系列ADC是否支持同步異步轉(zhuǎn)換?
    發(fā)表于 12-16 08:06

    高速數(shù)據(jù)存取同步SRAM與異步SRAM的區(qū)別

    存儲(chǔ)解決方案。與傳統(tǒng)的異步SRAM相比,同步SRAM在結(jié)構(gòu)和工作機(jī)制上進(jìn)行了優(yōu)化,能夠更好地適應(yīng)高速數(shù)據(jù)處理場(chǎng)景,因此在通信設(shè)備、嵌入式系統(tǒng)及高性能計(jì)算等領(lǐng)域被廣泛應(yīng)用。
    的頭像 發(fā)表于 11-18 11:13 ?417次閱讀

    為什么同步電機(jī)多做發(fā)電機(jī)而異步電機(jī)多做電動(dòng)機(jī)?

    根本原因在于:? ?同步電機(jī)能精確控制磁場(chǎng)(勵(lì)磁),而異步電機(jī)不能。? ?下面我們從研發(fā)的四個(gè)核心維度進(jìn)行深度解讀。 一、核心原理與特性對(duì)比(研發(fā)的出發(fā)點(diǎn)) 特性維度 同步電機(jī) 異步
    的頭像 發(fā)表于 10-30 16:21 ?1482次閱讀

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲(chóng)實(shí)戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段用 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)。” 二、整體架構(gòu)速覽(3 分鐘看懂) 三、開(kāi)發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?515次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲(chóng)實(shí)戰(zhàn)

    termux如何搭建python游戲

    用VS Code編輯 - 版本控制:`git`管理代碼,同步至GitHub/Gitee - 任務(wù)調(diào)度:通過(guò)`crontab`設(shè)置定時(shí)測(cè)試(如每分鐘運(yùn)行游戲腳本:`*/1 * * * * python
    發(fā)表于 08-29 07:06

    從底層解讀labview的TDMS高級(jí)異步寫(xiě)入的工作原理

    請(qǐng)求提交的順序)。 關(guān)鍵點(diǎn)總結(jié): 異步: 指調(diào)用寫(xiě)入函數(shù)后立即返回,不阻塞調(diào)用線程,實(shí)際寫(xiě)入由后臺(tái)處理。 高級(jí): 通常指提供更精細(xì)控制的函數(shù)(如設(shè)置緩沖區(qū)大小、刷新策略),區(qū)別于基本的異步寫(xiě)入
    發(fā)表于 08-14 17:05

    同步快?異步穩(wěn)?串口通信方案選擇的避坑指南

    我們常用的串口究竟是同步還是異步?藍(lán)牙模塊、WiFi模塊用的又是什么方式?今天,我們就來(lái)一探究竟,講清楚串口通信的同步異步區(qū)別。 1.
    的頭像 發(fā)表于 07-09 16:58 ?783次閱讀
    <b class='flag-5'>同步</b>快?<b class='flag-5'>異步</b>穩(wěn)?串口通信方案選擇的避坑指南

    AMD FPGA異步模式與同步模式的對(duì)比

    本文講述了AMD UltraScale /UltraScale+ FPGA 原生模式下,異步模式與同步模式的對(duì)比及其對(duì)時(shí)鐘設(shè)置的影響。
    的頭像 發(fā)表于 07-07 13:47 ?1635次閱讀

    同步電機(jī)失步淺析

    純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:同步電機(jī)失步淺析.pdf【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 06-20 17:42

    第二十四章 通用同步異步收發(fā)器(USART)

    本文介紹了W55MH32的通用同步異步收發(fā)器(USART),其支持全雙工異步通信、NRZ格式,具分?jǐn)?shù)波特率發(fā)生器,可編程數(shù)據(jù)字長(zhǎng)、停止位等。支持LIN、IrDA等模式,有DMA及多種中斷,適用于多場(chǎng)景高速通信。
    的頭像 發(fā)表于 05-29 15:44 ?2312次閱讀
    第二十四章 通用<b class='flag-5'>同步</b><b class='flag-5'>異步</b>收發(fā)器(USART)

    基礎(chǔ)篇-開(kāi)關(guān)電源的同步與非同步

    同步開(kāi)關(guān)電源和異步開(kāi)關(guān)電源之前,我們首先來(lái)回顧一下傳統(tǒng)的開(kāi)關(guān)電源,工作工程見(jiàn)下: 當(dāng)Q1打開(kāi),Q2關(guān)閉,Vsw為高,IQ1增加,IQ2為零,電感電流增加。 當(dāng)Q1關(guān)閉,Q2打開(kāi),Vsw為低,IQ1為零
    發(fā)表于 04-17 11:49

    德國(guó)SycoTec高速主軸科普:電機(jī)的主要類型概述

    從軋機(jī)到電熱水壺,從電動(dòng)汽車(chē)到牙科技術(shù):如今,電機(jī)作為驅(qū)動(dòng)裝置幾乎應(yīng)用于所有類型的機(jī)器中。但電機(jī)并非千篇一律,主要分為直流電機(jī)和交流電機(jī),其中又包含異步電機(jī)和同步電機(jī)。本文將帶您了解不同類型電機(jī)的區(qū)別、核心特性及各自優(yōu)勢(shì)。
    的頭像 發(fā)表于 04-15 09:30 ?940次閱讀
    德國(guó)SycoTec高速主軸科普:電機(jī)的主要類型<b class='flag-5'>概述</b>

    使用Python API在OpenVINO?中創(chuàng)建了用于異步推理的自定義代碼,輸出張量的打印結(jié)果會(huì)重復(fù),為什么?

    使用 Python* API 在 OpenVINO? 中創(chuàng)建了用于異步推理的自定義代碼。 遇到輸出張量的打印結(jié)果會(huì)重復(fù)的問(wèn)題,即使輸入圖像不同。
    發(fā)表于 03-06 07:53