chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

多路復(fù)用、同異步、BIO、NIO等知識(shí)點(diǎn)總結(jié)

FPGA之家 ? 來(lái)源:SoWhat1412 ? 作者:SoWhat1412 ? 2021-03-29 14:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

承接上文的操作系統(tǒng),關(guān)于IO會(huì)涉及到阻塞、非阻塞、多路復(fù)用、同步、異步、BIO、NIO、AIO等幾個(gè)知識(shí)點(diǎn)。知識(shí)點(diǎn)雖然不難但平常經(jīng)常容易搞混,特此Mark下,與君共勉。

1 阻塞跟非阻塞

1.1 阻塞

0f65a7d2-8ecc-11eb-8b86-12bb97331649.png

阻塞IO

阻塞IO情況下,當(dāng)用戶調(diào)用read后,用戶線程會(huì)被阻塞,等內(nèi)核數(shù)據(jù)準(zhǔn)備好并且數(shù)據(jù)從內(nèi)核緩沖區(qū)拷貝到用戶態(tài)緩存區(qū)后read才會(huì)返回??梢钥吹绞亲枞膬蓚€(gè)部分。

CPU把數(shù)據(jù)從磁盤讀到內(nèi)核緩沖區(qū)。

CPU把數(shù)據(jù)從內(nèi)核緩沖區(qū)拷貝到用戶緩沖區(qū)。

1.2 非阻塞

0f7f2662-8ecc-11eb-8b86-12bb97331649.png

非阻塞IO

非阻塞IO發(fā)出read請(qǐng)求后發(fā)現(xiàn)數(shù)據(jù)沒(méi)準(zhǔn)備好,會(huì)繼續(xù)往下執(zhí)行,此時(shí)應(yīng)用程序會(huì)不斷輪詢polling內(nèi)核詢問(wèn)數(shù)據(jù)是否準(zhǔn)備好,當(dāng)數(shù)據(jù)沒(méi)有準(zhǔn)備好時(shí),內(nèi)核立即返回EWOULDBLOCK錯(cuò)誤。直到數(shù)據(jù)被拷貝到應(yīng)用程序緩沖區(qū),read請(qǐng)求才獲取到結(jié)果。并且你要注意!這里最后一次 read 調(diào)用獲取數(shù)據(jù)的過(guò)程,是一個(gè)同步的過(guò)程,是需要等待的過(guò)程。這里的同步指的是內(nèi)核態(tài)的數(shù)據(jù)拷貝到用戶程序的緩存區(qū)這個(gè)過(guò)程。

1.3 IO多路復(fù)用

0ff84f92-8ecc-11eb-8b86-12bb97331649.png

IO多路復(fù)用

非阻塞情況下無(wú)可用數(shù)據(jù)時(shí),應(yīng)用程序每次輪詢內(nèi)核看數(shù)據(jù)是否準(zhǔn)備好了也耗費(fèi)CPU,能否不讓它輪詢,當(dāng)內(nèi)核緩沖區(qū)數(shù)據(jù)準(zhǔn)備好了,以事件通知當(dāng)機(jī)制告知應(yīng)用進(jìn)程數(shù)據(jù)準(zhǔn)備好了呢?應(yīng)用進(jìn)程在沒(méi)有收到數(shù)據(jù)準(zhǔn)備好的事件通知信號(hào)時(shí)可以忙寫其他的工作。此時(shí)IO多路復(fù)用就派上用場(chǎng)了。

IO多路復(fù)用中文比較讓人頭大,IO多路復(fù)用的原文叫 I/O multiplexing,這里的 multiplexing 指的其實(shí)是在單個(gè)線程通過(guò)記錄跟蹤每一個(gè)Sock(I/O流)的狀態(tài)來(lái)同時(shí)管理多個(gè)I/O流。 發(fā)明它的目的是盡量多的提高服務(wù)器的吞吐能力。實(shí)現(xiàn)一個(gè)線程監(jiān)控多個(gè)IO請(qǐng)求,哪個(gè)IO有請(qǐng)求就把數(shù)據(jù)從內(nèi)核拷貝到進(jìn)程緩沖區(qū),拷貝期間是阻塞的!現(xiàn)在已經(jīng)可以通過(guò)采用mmap地址映射的方法,達(dá)到內(nèi)存共享效果,避免真復(fù)制,提高效率。

102591dc-8ecc-11eb-8b86-12bb97331649.png

IO多路復(fù)用

像select、poll、epoll 都是I/O多路復(fù)用的具體的實(shí)現(xiàn)。

1.3.1 select

select是第一版IO復(fù)用,提出后暴漏了很多問(wèn)題。

select 會(huì)修改傳入的參數(shù)數(shù)組,這個(gè)對(duì)于一個(gè)需要調(diào)用很多次的函數(shù),是非常不友好的。

select 如果任何一個(gè)sock(I/O stream)出現(xiàn)了數(shù)據(jù),select 僅僅會(huì)返回,但不會(huì)告訴是那個(gè)sock上有數(shù)據(jù),只能自己遍歷查找。

select 只能監(jiān)視1024個(gè)鏈接。

select 不是線程安全的,如果你把一個(gè)sock加入到select, 然后突然另外一個(gè)線程發(fā)現(xiàn)這個(gè)sock不用,要收回,這個(gè)select 不支持的。

1.3.2 poll

poll 修復(fù)了 select 的很多問(wèn)題。

poll 去掉了1024個(gè)鏈接的限制。

poll 從設(shè)計(jì)上來(lái)說(shuō)不再修改傳入數(shù)組。

但是poll仍然不是線程安全的, 這就意味著不管服務(wù)器有多強(qiáng)悍,你也只能在一個(gè)線程里面處理一組 I/O 流。你當(dāng)然可以拿多進(jìn)程來(lái)配合了,不過(guò)然后你就有了多進(jìn)程的各種問(wèn)題。

1.3.3 epoll

epoll 可以說(shuō)是 I/O 多路復(fù)用最新的一個(gè)實(shí)現(xiàn),epoll 修復(fù)了poll 和select絕大部分問(wèn)題, 比如:

epoll 現(xiàn)在是線程安全的。

epoll 現(xiàn)在不僅告訴你sock組里面數(shù)據(jù),還會(huì)告訴你具體哪個(gè)sock有數(shù)據(jù),你不用自己去找了。

epoll 內(nèi)核態(tài)管理了各種IO文件描述符, 以前用戶態(tài)發(fā)送所有文件描述符到內(nèi)核態(tài),然后內(nèi)核態(tài)負(fù)責(zé)篩選返回可用數(shù)組,現(xiàn)在epoll模式下所有文件描述符在內(nèi)核態(tài)有存,查詢時(shí)不用傳文件描述符進(jìn)去了。

1.3.4 三者對(duì)比

1064b894-8ecc-11eb-8b86-12bb97331649.png

對(duì)比圖

橫軸 Dead connections 是鏈接數(shù)的意思,叫這個(gè)名字只是它的測(cè)試工具叫deadcon。縱軸是每秒處理請(qǐng)求的數(shù)量,可看到epoll每秒處理請(qǐng)求的數(shù)量基本不會(huì)隨著鏈接變多而下降的。poll 和/dev/poll 就很慘了。但 epoll 有個(gè)致命的缺點(diǎn)是只有linux支持。

比如平常Nginx為何可以支持4W的QPS是因?yàn)樗鼤?huì)使用目標(biāo)平臺(tái)上面最高效的I/O多路復(fù)用模型。

1.4 異步IO

10b03198-8ecc-11eb-8b86-12bb97331649.png

異步IO

然后你會(huì)發(fā)現(xiàn)上面的提到過(guò)的操作都不是真正的異步,因?yàn)閮蓚€(gè)階段總要等待會(huì)兒!而真正的異步 I/O 是內(nèi)核數(shù)據(jù)準(zhǔn)備好和數(shù)據(jù)從內(nèi)核態(tài)拷貝到用戶態(tài)這兩個(gè)過(guò)程都不用等待。

很慶幸,Linux給我們準(zhǔn)備了aio_read跟aio_write函數(shù)實(shí)現(xiàn)真實(shí)的異步,當(dāng)用戶發(fā)起aio_read請(qǐng)求后就會(huì)自動(dòng)返回。內(nèi)核會(huì)自動(dòng)將數(shù)據(jù)從內(nèi)核緩沖區(qū)拷貝到用戶進(jìn)程空間,應(yīng)用進(jìn)程啥都不用管。

2 同步跟異步

2.1 同步

同步跟異步的區(qū)別在于數(shù)據(jù)從內(nèi)核空間拷貝到用戶空間是否由用戶線程完成,這里又分為同步阻塞跟同步非阻塞兩種。

同步阻塞:此時(shí)一個(gè)線程維護(hù)一個(gè)連接,該線程完成數(shù)據(jù)到讀寫跟處理到全部過(guò)程,數(shù)據(jù)讀寫時(shí)時(shí)線程是被阻塞的。

同步非阻塞:非阻塞的意思是用戶線程發(fā)出讀請(qǐng)求后,讀請(qǐng)求不會(huì)阻塞當(dāng)前用戶線程,不過(guò)用戶線程還是要不斷的去主動(dòng)判斷數(shù)據(jù)是否準(zhǔn)備OK了。此時(shí)還是會(huì)阻塞等待內(nèi)核復(fù)制數(shù)據(jù)到用戶進(jìn)程。他與同步BIO區(qū)別是使用一個(gè)連接全程等待

我們以同步非阻塞為例,如下可看到,在將數(shù)據(jù)從內(nèi)核拷貝到用戶空間這一過(guò)程,是由用戶線程阻塞完成的。

10fcf064-8ecc-11eb-8b86-12bb97331649.png

同步非阻塞

2.2 異步

對(duì)于異步來(lái)說(shuō),用戶進(jìn)行讀或者寫后,將立刻返回,由內(nèi)核去完成數(shù)據(jù)讀取以及拷貝工作,完成后通知用戶,并執(zhí)行回調(diào)函數(shù)(用戶提供的callback),此時(shí)數(shù)據(jù)已從內(nèi)核拷貝到用戶空間,用戶線程只需要對(duì)數(shù)據(jù)進(jìn)行處理即可,不需要關(guān)注讀寫,用戶不需要等待內(nèi)核對(duì)數(shù)據(jù)的復(fù)制操作,用戶在得到通知時(shí)數(shù)據(jù)已經(jīng)被復(fù)制到用戶空間。我們以如下的真實(shí)異步非阻塞為例。

114594a4-8ecc-11eb-8b86-12bb97331649.png

異步IO

可發(fā)現(xiàn),用戶在調(diào)用之后會(huì)立即返回,由內(nèi)核完成數(shù)據(jù)的拷貝工作,并通知用戶線程,進(jìn)行回調(diào)。

2.3 同步跟異步對(duì)比

同步關(guān)注的消息通信機(jī)制synchronous communication,在發(fā)出一個(gè)調(diào)用時(shí),在沒(méi)有得到結(jié)果之前,該調(diào)用就不返回。但是一旦調(diào)用返回,就得到返回值了。換句話說(shuō),就是由調(diào)用者主動(dòng)等待這個(gè)調(diào)用的結(jié)果。

異步關(guān)注消息通信機(jī)制asynchronous communication,調(diào)用在發(fā)出之后,這個(gè)調(diào)用就直接返回了,所以沒(méi)有返回結(jié)果。換句話說(shuō),當(dāng)一個(gè)異步過(guò)程調(diào)用發(fā)出后,調(diào)用者不會(huì)立刻得到結(jié)果。而是在調(diào)用發(fā)出后,被調(diào)用者通過(guò)狀態(tài)、通知來(lái)通知調(diào)用者,或通過(guò)回調(diào)函數(shù)處理這個(gè)調(diào)用。

3 Java IO

在Java中,我們使用socket進(jìn)行網(wǎng)絡(luò)通信,IO主要有三種模式,主要看內(nèi)核支持哪些。

BIO:同步阻塞IO。

NIO:同步非阻塞IO。

AIO:異步非阻塞IO。

3.1 BIO

同步阻塞IO,每個(gè)客戶端的Socket連接請(qǐng)求,服務(wù)端都會(huì)對(duì)應(yīng)有個(gè)處理線程與之對(duì)應(yīng),對(duì)于沒(méi)有分配到處理線程的連接就會(huì)被阻塞或者拒絕。相當(dāng)于是一個(gè)連接一個(gè)線程。

117499ac-8ecc-11eb-8b86-12bb97331649.png

BIO

BIO特點(diǎn):

使用一個(gè)獨(dú)立的線程維護(hù)一個(gè)socket連接,隨著連接數(shù)量的增多,對(duì)虛擬機(jī)造成一定壓力。

使用流來(lái)讀取數(shù)據(jù),流是阻塞的,當(dāng)沒(méi)有可讀/可寫數(shù)據(jù)時(shí),線程等待,會(huì)造成資源的浪費(fèi)。

3.1.1 BIO 樣例

常量:

public class Constant {

public static final String HOST = “127.0.0.1”;

public static final int PORT = 8080;

}

主類:

public class ClientMain {

public static void main(String[] args) {

//開(kāi)啟服務(wù)

System.out.println(“開(kāi)啟服務(wù),監(jiān)聽(tīng)端口:” + Constant.PORT);

new Thread(new ServerThread()).start();

//建立一個(gè)socket客戶端,發(fā)起請(qǐng)求

System.out.println(“客戶端,請(qǐng)求連接,并發(fā)送數(shù)據(jù)”);

try {

Socket socket = new Socket(Constant.HOST,Constant.PORT);

//開(kāi)啟新的線程處理socket連接

new Thread(new ClientProcessThread(socket)).start();

} catch (IOException e) {

e.printStackTrace();

}

}

}

服務(wù)端監(jiān)聽(tīng)線程:

// 開(kāi)啟服務(wù)監(jiān)聽(tīng)線程,當(dāng)收到連接請(qǐng)求后,開(kāi)啟新的線程進(jìn)行處理

public class ServerThread implements Runnable{

@Override

public void run() {

try {

ServerSocket serverSocket = new ServerSocket(Constant.PORT);

while (true){

Socket socket = serverSocket.accept();

new Thread(new ServerProcessThread(socket)).start();

//開(kāi)啟新的線程進(jìn)行連接請(qǐng)求的處理

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

服務(wù)端處理線程:

import java.io.*;

import java.net.Socket;

/**

* 服務(wù)端收到連接請(qǐng)求后,處理請(qǐng)求的線程,阻塞式IO

*/

public class ServerProcessThread implements Runnable {

private Socket socket;

public ServerProcessThread(Socket socket){

this.socket = socket;

}

@Override

public void run() {

//獲取客戶端的數(shù)據(jù),并寫回

//等待響應(yīng)

try {

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

String line = “”;

String requestStr = “”;

System.out.println(“來(lái)自客戶端的數(shù)據(jù):”); // 讀取客戶端數(shù)據(jù)

while((line = bufferedReader.readLine()) != null){

requestStr += line;

System.out.println(line);

}

// 從服務(wù)端發(fā)給客戶端數(shù)據(jù)

Writer writer = new OutputStreamWriter(socket.getOutputStream());

writer.write(“data from server ” + requestStr + “

”);

writer.flush();

writer.close();

bufferedReader.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

客戶端:

/**

* 維護(hù)客戶端socket連接的線程,阻塞式IO

*/

public class ClientProcessThread implements Runnable {

private Socket socket;

public ClientProcessThread(Socket socket){

this.socket = socket;

}

@Override

public void run() {

//寫數(shù)據(jù),等待響應(yīng),輸出響應(yīng)

String requestStr = “data from client

”;

try {

Writer writer = new OutputStreamWriter(socket.getOutputStream());

writer.write(requestStr);

writer.flush();

socket.shutdownOutput();

//等待響應(yīng)

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

String line;

System.out.println(“來(lái)自服務(wù)端的響應(yīng):”);

while((line = bufferedReader.readLine()) != null){

System.out.println(line);

}

writer.close();

bufferedReader.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

輸出結(jié)果:

11b88f2c-8ecc-11eb-8b86-12bb97331649.png

3.2 NIO

同步非阻塞IO之NIO:服務(wù)器端保存一個(gè)Socket連接列表,然后對(duì)這個(gè)列表進(jìn)行輪詢,如果發(fā)現(xiàn)某個(gè)Socket端口上有數(shù)據(jù)可讀時(shí)說(shuō)明讀就緒,則調(diào)用該socket連接的相應(yīng)讀操作。如果發(fā)現(xiàn)某個(gè) Socket端口上有數(shù)據(jù)可寫時(shí)說(shuō)明寫就緒,則調(diào)用該socket連接的相應(yīng)寫操作。如果某個(gè)端口的Socket連接已經(jīng)中斷,則調(diào)用相應(yīng)的析構(gòu)方法關(guān)閉該端口。這樣能充分利用服務(wù)器資源,效率得到了很大提高,在進(jìn)行IO操作請(qǐng)求時(shí)候再用個(gè)線程去處理,是一個(gè)請(qǐng)求一個(gè)線程。Java中使用Selector、Channel、Buffer來(lái)實(shí)現(xiàn)上述效果。

12096712-8ecc-11eb-8b86-12bb97331649.png

NIO

每個(gè)線程中包含一個(gè)Selector對(duì)象,它相當(dāng)于一個(gè)通道管理器,可以實(shí)現(xiàn)在一個(gè)線程中處理多個(gè)通道的目的,減少線程的創(chuàng)建數(shù)量。遠(yuǎn)程連接對(duì)應(yīng)一個(gè)channel,數(shù)據(jù)的讀寫通過(guò)buffer均在同一個(gè)channel中完成,并且數(shù)據(jù)的讀寫是非阻塞的。通道創(chuàng)建后需要注冊(cè)在selector中,同時(shí)需要為該通道注冊(cè)感興趣事件(客戶端連接服務(wù)端事件、服務(wù)端接收客戶端連接事件、讀事件、寫事件),selector線程需要采用輪訓(xùn)的方式調(diào)用selector的select函數(shù),直到所有注冊(cè)通道中有興趣的事件發(fā)生,則返回,否則一直阻塞。而后循環(huán)處理所有就緒的感興趣事件。以上步驟解決BIO的兩個(gè)瓶頸:

不必對(duì)每個(gè)連接分別創(chuàng)建線程。

數(shù)據(jù)讀寫非阻塞。

下面對(duì)以下三個(gè)概念做一個(gè)簡(jiǎn)單介紹,Java NIO由以下三個(gè)核心部分組成:

selector:Selector 允許單線程處理多個(gè)Channel。如果你的應(yīng)用打開(kāi)了多個(gè)連接(通道),但每個(gè)連接的流量都很低,使用Selector就會(huì)很方便。要使用Selector,得向Selector注冊(cè)Channel,然后調(diào)用他的select方法,這個(gè)方法會(huì)一直阻塞到某個(gè)注冊(cè)的通道有事件就緒。一旦這個(gè)方法返回,線程就可以處理這些事件,事件的例子入有新連接接進(jìn)來(lái),數(shù)據(jù)接收等。

Channel:基本上所有的IO在NIO中都從一個(gè)Channel開(kāi)始。Channel有點(diǎn)像流,數(shù)據(jù)可以從channel讀到buffer,也可以從buffer寫到channel。

Buffer:緩沖區(qū)本質(zhì)上是一個(gè)可以讀寫數(shù)據(jù)的內(nèi)存塊,可以理解成是一個(gè)容器對(duì)象(含數(shù)組),該對(duì)象提供了一組方法,可以更輕松的使用內(nèi)存塊,緩沖區(qū)對(duì)象內(nèi)置了一些機(jī)制,能夠跟蹤和記錄緩沖區(qū)的狀態(tài)變換情況,Channel提供從文件,網(wǎng)絡(luò)讀取數(shù)據(jù)的渠道,但是讀取或者寫入的數(shù)據(jù)都必須經(jīng)由Buffer。

channel和buffer有好幾種類型。下面是Java NIO中的一些主要channel的實(shí)現(xiàn):

FileChannel

DatagramChannel

SocketChannel

ServerSocketChannel

正如你所看到的,這些通道涵蓋了UDP和TCP網(wǎng)絡(luò)IO,以及文件IO。以下是Java NIO里關(guān)鍵的buffer實(shí)現(xiàn):

ByteBuffer

CharBuffer

FloatBuffer

IntBuffer

LongBuffer

ShortBuffer

在微服務(wù)階段,一個(gè)請(qǐng)求可能涉及到多個(gè)不同服務(wù)之間的跨服務(wù)器調(diào)用,如果你想實(shí)現(xiàn)高性能的PRC框架來(lái)進(jìn)行數(shù)據(jù)傳輸,那就可以基于Java NIO做個(gè)支持長(zhǎng)連接、自定義協(xié)議、高并發(fā)的框架,比如Netty。Netty本身就是一個(gè)基于NIO的網(wǎng)絡(luò)框架, 封裝了Java NIO那些復(fù)雜的底層細(xì)節(jié),給你提供簡(jiǎn)單好用的抽象概念來(lái)編程。比如Dubbo底層就是用的Netty。

121a8e98-8ecc-11eb-8b86-12bb97331649.png

Netty通訊模式

3.3 AIO

AIO是異步非阻塞IO,相比NIO更進(jìn)一步,進(jìn)程讀取數(shù)據(jù)時(shí)只負(fù)責(zé)發(fā)送跟接收指令,數(shù)據(jù)的準(zhǔn)備工作完全由操作系統(tǒng)來(lái)處理。

原文標(biāo)題:阻塞、非阻塞、多路復(fù)用、同步、異步、BIO、NIO、AIO 一鍋端

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 同步
    +關(guān)注

    關(guān)注

    0

    文章

    105

    瀏覽量

    20077
  • 異步
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    18507
  • AIO
    AIO
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    10498

原文標(biāo)題:阻塞、非阻塞、多路復(fù)用、同步、異步、BIO、NIO、AIO 一鍋端

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    德州儀器 TPS211x 系列電源多路復(fù)用器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    工程師們提供了一種高效、可靠的解決方案,可實(shí)現(xiàn)兩個(gè)電源之間的無(wú)縫切換。本文將詳細(xì)介紹 TPS211x 系列的特性、應(yīng)用場(chǎng)景以及設(shè)計(jì)要點(diǎn)。 文件下載: tps2110.pdf 一、TPS211x 系列概述 TPS211x 系列包括 TPS2110、TPS2111 型號(hào),是一種雙輸入、單輸出的電源
    的頭像 發(fā)表于 03-01 09:15 ?207次閱讀

    TPS22981:3.3 - 18V Thunderbolt? 電源多路復(fù)用器設(shè)計(jì)指南

    TPS22981:3.3 - 18V Thunderbolt? 電源多路復(fù)用器設(shè)計(jì)指南 在電子設(shè)備的電源管理領(lǐng)域,高效且可靠的電源切換和電流控制至關(guān)重要。TI 的 TPS22981 電源多路復(fù)用
    的頭像 發(fā)表于 02-28 17:25 ?1042次閱讀

    MAX4315:高速低功耗視頻多路復(fù)用放大器的設(shè)計(jì)指南

    MAX4310 - MAX4315:高速低功耗視頻多路復(fù)用放大器的設(shè)計(jì)指南 在視頻信號(hào)處理和切換應(yīng)用中,選擇合適的多路復(fù)用放大器至關(guān)重要。今天我們就來(lái)深入探討一下Maxim公司的MAX4310
    的頭像 發(fā)表于 01-28 16:40 ?395次閱讀

    高速利器:AD8183三重 2:1 多路復(fù)用器深度解析

    高速利器:AD8183/AD8185 三重 2:1 多路復(fù)用器深度解析 在電子設(shè)計(jì)領(lǐng)域,對(duì)于高速且功能強(qiáng)大的多路復(fù)用器的需求日益增長(zhǎng)。AD8183/AD8185 作為高速三重 2:1 多路復(fù)用
    的頭像 發(fā)表于 01-24 15:05 ?545次閱讀

    深入解析CDx4ACT151 8線至1線數(shù)據(jù)選擇器/多路復(fù)用

    數(shù)據(jù)選擇器/多路復(fù)用器,了解它的特性、規(guī)格以及應(yīng)用中的注意事項(xiàng)。 文件下載: cd74act151.pdf 一、產(chǎn)品概述 CDx4ACT151是一款高速硅柵CMOS多路復(fù)用器,非常適合用于多路復(fù)用和數(shù)據(jù)路由應(yīng)用。它包含一個(gè)單8:
    的頭像 發(fā)表于 01-16 14:55 ?284次閱讀

    深入解析CD405xB系列:多功能模擬多路復(fù)用器與解復(fù)用

    深入解析CD405xB系列:多功能模擬多路復(fù)用器與解復(fù)用器 在電子設(shè)計(jì)的廣闊領(lǐng)域中,模擬多路復(fù)用器與解復(fù)用器是實(shí)現(xiàn)信號(hào)選擇和分配的關(guān)鍵組件。今天,我們將深入探討CD4051B、CD40
    的頭像 發(fā)表于 01-16 13:55 ?275次閱讀

    SN74CBTLV3251:高速FET多路復(fù)用器/解復(fù)用器的詳細(xì)剖析

    SN74CBTLV3251:高速FET多路復(fù)用器/解復(fù)用器的詳細(xì)剖析 作為電子工程師,在設(shè)計(jì)電路時(shí),選擇合適的多路復(fù)用器/解復(fù)用器至關(guān)重要。今天,我們就來(lái)深入了解一下德州儀器(TI
    的頭像 發(fā)表于 01-16 11:30 ?215次閱讀

    深入解析TMUX1204:高性能模擬多路復(fù)用器的卓越之選

    深入解析TMUX1204:高性能模擬多路復(fù)用器的卓越之選 在電子工程師的日常設(shè)計(jì)工作中,模擬多路復(fù)用器是一種常用的基礎(chǔ)器件,它在信號(hào)切換、數(shù)據(jù)采集眾多應(yīng)用場(chǎng)景中發(fā)揮著關(guān)鍵作用。今天,我們就來(lái)
    的頭像 發(fā)表于 01-13 15:15 ?254次閱讀

    深入剖析 SN74HCS251:8 選 1 多路復(fù)用器的魅力

    深入剖析 SN74HCS251:8 選 1 多路復(fù)用器的魅力 在電子設(shè)計(jì)領(lǐng)域,多路復(fù)用器是一種常用的邏輯器件,它能夠在多個(gè)輸入信號(hào)中選擇一個(gè)進(jìn)行輸出,廣泛應(yīng)用于數(shù)據(jù)選擇、信號(hào)切換場(chǎng)景。今天,我們
    的頭像 發(fā)表于 01-13 13:55 ?222次閱讀

    探索TMUX6208與TMUX6209:高性能模擬多路復(fù)用器的卓越之選

    探索TMUX6208與TMUX6209:高性能模擬多路復(fù)用器的卓越之選 在電子工程師的日常設(shè)計(jì)工作中,選擇合適的模擬多路復(fù)用器至關(guān)重要。德州儀器(Texas Instruments
    的頭像 發(fā)表于 01-13 11:15 ?260次閱讀

    德州儀器TMUX6208和TMUX6209:高性能模擬多路復(fù)用器的理想之選

    精密的8:1單通道多路復(fù)用器,而TMUX6209則是4:1的2通道多路復(fù)用器。它們具有低導(dǎo)通電阻、低電荷注入特性,能夠在
    的頭像 發(fā)表于 01-13 10:45 ?276次閱讀

    探索TMUX405x系列多路復(fù)用器:設(shè)計(jì)與應(yīng)用指南

    探索TMUX405x系列多路復(fù)用器:設(shè)計(jì)與應(yīng)用指南 在電子設(shè)計(jì)領(lǐng)域,多路復(fù)用器是一種基礎(chǔ)且關(guān)鍵的組件,它能在多個(gè)信號(hào)源中進(jìn)行切換,常用于信號(hào)的多路選擇與傳輸。今天,我們聚焦于TI(德州儀器)推出
    的頭像 發(fā)表于 01-13 09:30 ?354次閱讀

    SN74AHCT157-Q1:高性能CMOS多路復(fù)用器的設(shè)計(jì)與應(yīng)用解析

    SN74AHCT157-Q1:高性能CMOS多路復(fù)用器的設(shè)計(jì)與應(yīng)用解析 在電子設(shè)計(jì)領(lǐng)域,多路復(fù)用器是實(shí)現(xiàn)數(shù)據(jù)選擇和路由的關(guān)鍵元件。今天,我們來(lái)深入探討德州儀器(TI)的SN74AHCT157-Q1
    的頭像 發(fā)表于 01-12 16:30 ?238次閱讀

    SN74ACT153:雙4選1數(shù)據(jù)選擇器/多路復(fù)用器的詳細(xì)剖析

    SN74ACT153:雙4選1數(shù)據(jù)選擇器/多路復(fù)用器的詳細(xì)剖析 在電子設(shè)計(jì)領(lǐng)域,數(shù)據(jù)選擇器和多路復(fù)用器是常見(jiàn)且關(guān)鍵的組件,它們能夠高效地實(shí)現(xiàn)數(shù)據(jù)的選擇和路由。今天我們要深入探討的是德州儀器(TI
    的頭像 發(fā)表于 01-12 13:45 ?452次閱讀

    模擬多路復(fù)用器CBMG708/709#芯片 #國(guó)產(chǎn)替代 #國(guó)產(chǎn)芯片

    多路復(fù)用
    芯佰微電子
    發(fā)布于 :2025年11月18日 09:28:24