一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ThreadLocal是什么

jf_ro2CN3Fa ? 來源:CSDN ? 2023-01-30 11:36 ? 次閱讀


ThreadLocal是什么

ThreadLocal是一個本地線程副本變量工具類。主要用于將私有線程和該線程存放的副本對象做一個映射,各個線程之間的變量互不干擾,在高并發(fā)場景下,可以實現無狀態(tài)的調用,特別適用于各個線程依賴不通的變量值完成操作的場景。

下圖為ThreadLocal的內部結構圖

931b2958-9fb9-11ed-bfe3-dac502259ad0.png

從上面的結構圖,我們已經窺見ThreadLocal的核心機制:

  • 每個Thread線程內部都有一個Map。
  • Map里面存儲線程本地對象(key)和線程的變量副本(value)
  • 但是,Thread內部的Map是由ThreadLocal維護的,由ThreadLocal負責向map獲取和設置線程的變量值。

所以對于不同的線程,每次獲取副本值時,別的線程并不能獲取到當前線程的副本值,形成了副本的隔離,互不干擾。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

ThreadLocalMap

932a8d58-9fb9-11ed-bfe3-dac502259ad0.png

ThreadLocalMap是ThreadLocal的內部類,沒有實現Map接口,用獨立的方式實現了Map的功能,其內部的Entry也獨立實現。

和HashMap的最大的不同在于,ThreadLocalMap結構非常簡單,沒有next引用,也就是說ThreadLocalMap中解決Hash沖突的方式并非鏈表的方式,而是采用線性探測的方式。(ThreadLocalMap如何解決沖突?

在ThreadLocalMap中,也是用Entry來保存K-V結構數據的。但是Entry中key只能是ThreadLocal對象,這點被Entry的構造方法已經限定死了。

staticclassEntryextendsWeakReference<ThreadLocal>{
/**ThevalueassociatedwiththisThreadLocal.*/
Objectvalue;

Entry(ThreadLocalk,Objectv){
super(k);
value=v;
}
}

注意了?。?/p>

Entry繼承自WeakReference(弱引用,生命周期只能存活到下次GC前),但只有Key是弱引用類型的,Value并非弱引用。(問題馬上就來了)

由于ThreadLocalMap的key是弱引用,而Value是強引用。這就導致了一個問題,ThreadLocal在沒有外部對象強引用時,發(fā)生GC時弱引用Key會被回收,而Value不會回收。

當線程沒有結束,但是ThreadLocal已經被回收,則可能導致線程中存在ThreadLocalMap的鍵值對,造成內存泄露。(ThreadLocal被回收,ThreadLocal關聯的線程共享變量還存在)。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

如何避免泄漏

為了防止此類情況的出現,我們有兩種手段。

1、使用完線程共享變量后,顯示調用ThreadLocalMap.remove方法清除線程共享變量;

既然Key是弱引用,那么我們要做的事,就是在調用ThreadLocal的get()、set()方法時完成后再調用remove方法,將Entry節(jié)點和Map的引用關系移除,這樣整個Entry對象在GC Roots分析后就變成不可達了,下次GC的時候就可以被回收。

2、JDK建議ThreadLocal定義為private static,這樣ThreadLocal的弱引用問題則不存在了。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28751
  • 線程
    +關注

    關注

    0

    文章

    507

    瀏覽量

    20019
  • Thread
    +關注

    關注

    2

    文章

    85

    瀏覽量

    26278

原文標題:ThreadLocal 搭配線程池使用造成內存泄漏的原因和解決方案

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    凈利潤暴漲2000%,國產芯片沖高初見成效

    ? 電子發(fā)燒友網報道(文/李彎彎)近日,國產半導體企業(yè)相繼發(fā)布2024年年度報告,包括格科微、思特威、兆易創(chuàng)新、英集芯、瀾起科技等,多家企業(yè)實現營業(yè)收入和凈利潤大幅上漲,如格科微、英集芯、兆易創(chuàng)新、思特威等,凈利潤增長均超200%,最高超2000%。半導體企業(yè)業(yè)績向好,除了手機、PC等市場呈現復蘇信號之外,還在于近些年來國內半導體企業(yè)擁抱高端市場,各家公司推出的高端芯片逐漸帶來業(yè)績增長。 半導體企業(yè)凈利潤增長超2000% 格科微近
    的頭像 發(fā)表于 05-03 07:36 ?68次閱讀
    凈利潤暴漲2000%,國產芯片沖高初見成效

    中國供應鏈,“搶跑”人形機器人萬億市場

    ? 電子發(fā)燒友網報道(文/梁浩斌)人形機器人在最近一年里的技術爆炸,受到了全球廣泛關注。今年3月,特斯拉CEO埃隆·馬斯克在社交平臺上透露,今年內特斯拉將試生產5000臺人形機器人,2026年的目標是生產5萬臺。此前按照特斯拉的計劃,2027年將進一步提升至月產10萬臺人形機器人。 ? 國內方面,機器人產品的更新迭代速度更加驚人,并在應用落地方面有很大進展,包括小鵬、比亞迪、廣汽、奇瑞、一汽、蔚來、長安、極氪等多家車企都已經在工廠
    的頭像 發(fā)表于 05-03 07:27 ?79次閱讀
    中國供應鏈,“搶跑”人形機器人萬億市場

    1440線激光雷達上線!百款新車亮相,哪家激光雷達成為車企心頭好?

    (電子發(fā)燒友原創(chuàng) 章鷹)近日,海外調研機構Research And Markets.com發(fā)布《2024-2025年汽車激光雷達行業(yè)報告》。2025年初,比亞迪“天神之眼”智能駕駛和長安汽車“天樞”智能駕駛掀起了大眾智能駕駛的熱潮,智能駕駛的平民化趨勢日益明顯。 在4月23日舉辦的上海車展上,記者看到激光雷達技術目前已延伸至10萬、15萬元到18萬價位的車型(例如廣汽豐田bZ3X、BZ5和零跑B10),甚至延伸至10萬元級車型。 此外,車展上問界新M9搭載1顆192線頂級激光雷達加上3顆
    的頭像 發(fā)表于 05-02 11:51 ?317次閱讀
    1440線激光雷達上線!百款新車亮相,哪家激光雷達成為車企心頭好?

    AD9102低功耗、14位、180MSPS、數模轉換器和波形發(fā)生器技術手冊

    AD9102 TxDAC?和波形發(fā)生器是高性能DAC,集成片上模式存儲器,用于復雜波形生成,具有直接數字頻率合成器(DDS)。 該DDS是一個14位輸出、最高180MHz的主機時鐘正弦波發(fā)生器,帶24位調諧字,支持10.8Hz/LSB的頻率分辨率。
    的頭像 發(fā)表于 05-02 17:59 ?99次閱讀
    AD9102低功耗、14位、180MSPS、數模轉換器和波形發(fā)生器技術手冊

    HMC506LP4/506LP4E采用SMT封裝的VCO,帶有緩沖放大器,7.8-8.7GHz技術手冊

    HMC506LP4(E)是一款GaAs InGaP異質結雙極性晶體管(HBT)MMIC VCO,帶有集成諧振器、負電阻器件、變容二極管、緩沖放大器。 該VCO在7.8至8.7 GHz的頻率下工作,由于振蕩器的單芯片結構,其相位噪聲性能在不同的溫度、沖擊、振動條件下均非常出色。 功率輸出為+14 dBm(典型值),采用+3V單電源,功耗77 mA。 該電壓控制振蕩器采用無引腳QFN 4x4 mm表貼封裝。
    的頭像 發(fā)表于 05-02 17:55 ?67次閱讀
    HMC506LP4/506LP4E采用SMT封裝的VCO,帶有緩沖放大器,7.8-8.7GHz技術手冊

    【RA-Eco-RA4M2開發(fā)板評測】利用TOUCH結合繼電器控制小功率風扇

    本次帶來的項目是通過板子上的touch鍵來達到點動控制風扇的目的,進一步可結合感應開關模塊制成感應風扇 本次燒錄還是利用的是瑞薩的flash programmer 視頻效果如下
    發(fā)表于 05-02 17:36

    ADF5709 9.85GHz至20.5GHz、寬帶、MMIC VCO技術手冊

    ADF5709寬帶、單芯片微波集成電路(MMIC)、壓控振蕩器(VCO)支持9.85 GHz至20.5 GHz的輸出頻率(f ~OUT~ )范圍,同時在100 kHz偏置時保持83 dBc/Hz相位噪聲,而無次諧波音。寬頻率調諧范圍和低相位噪聲支持適合各種頻段的鎖相環(huán)(PLL)解決方案,限制了對多個窄帶VCO的需求。設計RF和微波應用時,寬頻率覆蓋范圍降低了電路板設計復雜性并減少了物料。
    的頭像 發(fā)表于 05-02 17:32 ?79次閱讀
    ADF5709 9.85GHz至20.5GHz、寬帶、MMIC VCO技術手冊

    MAX1005 IF欠采樣量化器技術手冊

    MAX1005是一款組合式數字化儀和重建集成電路,可用于通信信號解調和調制系統(tǒng)。它將IF欠采樣和信號合成功能集成到單個低功耗電路中。其模數轉換器(ADC)用于直接采樣或欠采樣下變頻的RF信號,而其數模轉換器(DAC)則重新創(chuàng)建IF子載波和傳輸數據。由于模擬輸入放大器具有(15MHz)寬帶寬,MAX1005的ADC非常適合欠采樣應用。DAC的毛刺能量非常低,從而充分減少了干擾雜散信號的傳輸。片上基準電壓源提供低噪聲ADC和DAC轉換。
    的頭像 發(fā)表于 05-02 17:20 ?73次閱讀
    MAX1005 IF欠采樣量化器技術手冊

    AD9161/AD9162 11位、12 GSPS、RF數模轉換器技術手冊

    AD9161是一款高性能11位數模轉換器(DAC),支持最高達6 GSPS的數據速率。DAC內核基于一個四通道開關結構配合2倍插值濾波器,使DAC的有效更新速率在某些模式下高達12 GSPS。高動態(tài)范圍和帶寬使這些DAC非常適合最苛刻的高速射頻(RF)DAC應用。
    的頭像 發(fā)表于 05-02 17:14 ?90次閱讀
    AD9161/AD9162 11位、12 GSPS、RF數模轉換器技術手冊

    AD9957 1 GSPS正交數字上變頻器,內置18位IQ數據路徑和14位DAC技術手冊

    AD9957可用作通用I/Q調制器與捷變上變頻器,適合視成本、尺寸、功耗和動態(tài)性能為關鍵因素的通信系統(tǒng)。它在單芯片上集成了一個高速直接數字頻率合成器(DDS)、一個高性能、高速14位數模轉換器(DAC)、時鐘乘法器電路、數字濾波器以及其它DSP功能,為有線或無線通信系統(tǒng)中的數據傳輸提供基帶上變頻。
    的頭像 發(fā)表于 05-02 14:47 ?90次閱讀
    AD9957 1 GSPS正交數字上變頻器,內置18位IQ數據路徑和14位DAC技術手冊

    RA-Eco-RA4M2開發(fā)板評測】RA4M2 + ESP8266獲取城市天氣預報(一)

    很高興收到瑞薩電子的RA4M2開發(fā)板,有幸成為了幸運觀眾,本期就來使用瑞薩的RA4M2開發(fā)板通過串口連接WIFI模塊ESP8266,獲取天氣預報數據信息。并實時顯示出來。它可以獲取國內任何城市的天氣預報。 ESP8266是一款WiFi模塊,它具有強大的網絡連接功能,可以輕松地連接到互聯網。將使用ESP8266模塊來獲取天氣數據,并將其發(fā)送給RA4M2 控制器。通過AT指令來控制ESP8266收發(fā)數據,并通過串口打印輸出。 我會使用到兩個串口,一個用來調試,一個用來連接ESP8266。具體架構框圖如下所示: 由上圖可知,串口9就是板載的USB串口,用來打印調試。 串口0和ESP8266連接,用來發(fā)AT指令。 話不多說了,先上干貨?。。?! 1。打開配置軟件 取名ESP8266 2。選擇芯片型號 3。 4。選擇非RTOS 5。不選擇任何外設,最小化 6。生成代碼 7。添加串口 一共兩個 8。生成代碼 9。打開KEIL 10。串口9函數實現代碼 #include \"usart9.h\" /*作用:串口9初始化,P109--TXD,P110--RXD *傳入參數:無 *返回參數:無 */ void UART9_Init(void) { fsp_err_t err = FSP_SUCCESS; err = R_SCI_UART_Open(&g_uart9_ctrl,&g_uart9_cfg); assert(err == FSP_SUCCESS); } static volatile bool uart_send_complete_flag = false; // 發(fā)送完成標志 uint8_t RxBuff[1]; //進入中斷接收數據的數組 uint8_t DataBuff[5000];//保存接收到的數據的數組 int RxLine=0;//接收到的數據長度 int Rx_flag=0;//接受到數據標志 int Rx_flag_finish=0; //接受完成或者時間溢出 void user_uart_callback (uart_callback_args_t * p_args) { if(p_args->event == UART_EVENT_TX_COMPLETE) { uart_send_complete_flag = true; } if(p_args->event ==UART_EVENT_RX_CHAR) { RxBuff[0] = p_args->data; RxLine++; //每接收到一個數據,進入回調數據長度加1 DataBuff[RxLine-1]=RxBuff[0];//把每次接收到的數據保存到緩存數組 Rx_flag=1; if(RxBuff[0]==0xff)//接收結束標志位,這個數據可以自定義,根據實際需求,這里只做示例使用,不一定是0xff { Rx_flag_finish=1; } RxBuff[0]=0; //err = R_GPT_Reset(&g_timer0_ctrl); //assert(FSP_SUCCESS == err); } } void printf_usart(void) { printf(\"length=%d\\\\\\\\r\\\\\\\\n\",RxLine); for(int i=0;i<RxLine;i++) printf(\"data:[%d] = 0x%x\\\\\\\\r\\\\\\\\n\",i,DataBuff[i]); memset(DataBuff,0,sizeof(DataBuff));//清空緩存數組 //memset()作用:可以方便的清空一個結構類型的變量或數組。 //例句:memset(aTxbuffer,0,sizeof(aTxbuffer))用memset清空aTxbuffer。 RxLine=0;//清空接收長度 Rx_flag_finish=0; Rx_flag = 0; } /* 重定向 printf 輸出 */ #if defined GNUC && !defined clang int _write(int fd, char *pBuffer, int size); //防止編譯警告 int _write(int fd, char *pBuffer, int size) { (void)fd; R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)pBuffer, (uint32_t)size); while(uart_send_complete_flag == false); uart_send_complete_flag = false; return size; } #else int fputc(int ch, FILE *f) { (void)f; R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1); while(uart_send_complete_flag == false); uart_send_complete_flag = false; return ch; } #endif 重定義 11。串口0 ESP8266代碼定義 void ESP8266 (uart_callback_args_t * p_args) { if(p_args->event == UART_EVENT_TX_COMPLETE) { uart_send_complete_flag = true; } if(p_args->event == UART_EVENT_RX_CHAR) { if(esp8266_cnt >= sizeof(esp8266_buf)) { esp8266_cnt = 0; //防止串口被刷爆 } esp8266_buf[esp8266_cnt++] = (uint8_t)p_args->data; } } _Bool ESP8266_SendCmd(char *cmd, char *res) { unsigned char timeOut = 200; R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t *)cmd, strlen(cmd)); #if DEBUG_MODEM printf(\"%s\",cmd); #endif while(timeOut--) { if(ESP8266_WaitRecive() == REV_OK)//如果收到數據 { if(strstr((const char *)esp8266_buf, res) != NULL)//如果檢索到關鍵詞 { #if DEBUG_MODEM printf(\"%s\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n\",res); #endif ESP8266_Clear();//清空緩存 return 0; } } R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS); } return 1; } 設置好了核心代碼后,就可以跑通RSP8266了, 下面我來講解如何獲取城市天氣預報信息。 12。這里我使用的是心知天氣的api,百度搜索即可,可以申請免費試用付費版也可以使用免費版,這里以免費版為例。 心知天氣api: https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c 當你注冊好心知天氣的賬號并開通免費版或者申請試用后或獲得一個密鑰,將連接中的加粗字體key替換為你的密鑰即可。 鏈接中加粗字體beijing為地區(qū)名,想換成哪里就是哪里的拼音。 鏈接中加粗字體zh-Hans為語言,如果想代碼簡單化就改成en,英文方式顯示,中文處理過于復雜,本文即為在英語環(huán)境下處理 首先我們來看下本文程序思想: 1.連接WIFI 2.DNS解析域名獲得IP 3.創(chuàng)建TCP連接 4.GET獲得源代碼 5.數據處理 1.連接WIFI 本步驟過于簡單,不再贅述。 2.DNS解析域名獲得IP 8266官方庫中給出了espconn_gethostbyname()這樣的一個函數,可以解析域名獲得IP,但本人覺得放在8266中運行無疑是增加了負擔,這一步完全可以通過PC端完成,本文便以最簡便方式說明。 2.DNS解析域名獲得IP 8266官方庫中給出了espconn_gethostbyname()這樣的一個函數,可以解析域名獲得IP,但本人覺得放在8266中運行無疑是增加了負擔,這一步完全可以通過PC端完成,本文便以最簡便方式說明。 步驟:win+r鍵→輸入cmd→輸入pingapi.seniverse.com并回車 紅色框中的就是心知app的IP地址,后面要用到這個,非常關鍵?。?3.創(chuàng)建TCP連接 本步驟過于簡單,不再贅述。 但要提一下的是創(chuàng)建TCP連接時,IP為上面取到的IP,端口則為80。 4.GET獲得源代碼 如想獲取源代碼,便需要以下知識。 客戶端發(fā)送一個HTTP請求到服務器的請求消息包括以下格式: 請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成,下圖給出了請求報文的一般格式。 而我們這次用的方法是GET,URL是:/v3/weather/now.json?key=Key&location=beijing&language=zh-Hans&unit=c,Key注意替換,協(xié)議版本是HTTP/1.1,HOST是 api.seniverse.com,剩下的我們并不需要,再加上請求報文一般格式上的符號,代碼如下: #define HEAD \"GET /v3/weather/now.json?key=Key&location=shenzhen&language=en&unit=c HTTP/1.1\\\\r\\\\nHost: %s\\\\r\\\\n\\\\r\\\\n\" 好了,主要原理就是這樣的,現在我們開始實現代碼邏輯。。 void ESP8266_Init(void) { ESP8266_Clear(); while(ESP8266_SendCmd(\"AT+RST\\\\r\\\\n\", \"OK\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); while(ESP8266_SendCmd(\"AT\\\\r\\\\n\", \"OK\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); while(ESP8266_SendCmd(\"AT+CWMODE=1\\\\r\\\\n\", \"OK\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); while(ESP8266_SendCmd(ESP8266_WIFI_INFO, \"GOT IP\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); //command(WIFI_Start); while(ESP8266_SendCmd(ESP8266_ONENET_INFO, \"CONNECT\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); while(ESP8266_SendCmd(\"AT+CIPMODE=1\\\\r\\\\n\", \"OK\")) R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); command(Data); command(TX_Data); R_BSP_SoftwareDelay(10000, BSP_DELAY_UNITS_MILLISECONDS); cJSON *json; cJSON *Array_obj1; cJSON *Array_obj2; cJSON *Array_obj3; cJSON *Array_obj4; cJSON *Array; json = cJSON_Parse((const char *) esp8266_buf ); Array_obj1=cJSON_GetObjectItem(json,\"results\"); int size=cJSON_GetArraySize(Array_obj1); printf(\"\\\\n%d\",size); if(json == NULL) printf(\"\\\\njson fmt error:%s\\\\n.\", cJSON_GetErrorPtr()); else { Array=cJSON_GetArrayItem(Array_obj1,0); Array_obj2=cJSON_GetObjectItem(Array,\"now\"); Array_obj3=cJSON_GetObjectItem(Array_obj2,\"code\"); R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); Array_obj4=cJSON_GetObjectItem(Array_obj2,\"temperature\"); printf(\"n\\\\r%s\\\\n\\\\r\",Array_obj3->valuestring);//天氣代碼 printf(\"n\\\\r%s\\\\n\\\\r\",Array_obj4->valuestring);//氣溫 strcpy(Recive,Array_obj3->valuestring); strcpy(Recive2,Array_obj4->valuestring); printf(\"\\\\n\\\\r%s\\\\n\\\\r\",esp8266_buf); printf(\"\\\\n\\\\r%s\\\\n\\\\r\",Recive2); memset(Recive2,0x00,sizeof(Recive2)); //清空數組 if(Recive[0]==1&&(Recive[1]==\'3\'||Recive[1]==\'4\'||Recive[1]==\'5\')) { printf(\"\\\\n天氣:雨\\\\n\"); } else if(Recive[0]==\'0\'||Recive[0]==\'1\') { printf(\"\\\\n天氣:晴\\\\n\"); } else if(Recive[0]==\'4\'||Recive[0]==\'5\'||Recive[0]==\'6\') { printf(\"\\\\n天氣:多云\\\\n\"); } else if(Recive[0]==\'9\') { printf(\"\\\\n天氣:陰\\\\n\"); } //Recive[0]=\'x\'; //Recive[1]=\'x\'; memset(Recive,0x00,sizeof(Recive)); //清空數組 } ESP8266_Clear(); cJSON_free(esp8266_buf); cJSON_Delete(json); } 我使用了cJSON來解析返回的天氣信息,可以參看深圳市天氣預報如下 打開串口助手,查看打印的天氣信息 打開手機查看深圳天氣,發(fā)現在31度,是比較準確的?。?!
    發(fā)表于 05-02 14:28

    HMC1019ALP4E 0.5 dB LSB GaAs MMIC 5位數字衰減器,0.1-30GHz技術手冊

    HMC1019ALP4E是一款寬帶5位GaAs IC數字衰減器,采用低成本無引腳表貼封裝。在0.1到30.0 GHz頻率下運行,插入損耗低于4.0 dB典型值。對于15.5 dB的總衰減,衰減器位值為0.5 (LSB)、1、2、4和8。衰減精度非常高,典型步長誤差為±0.3 dB,IIP3為+45 dBm??刂平涌诩嫒軨MOS/TTL,可接受三線式串行輸入。HMC1019ALP4E具有用戶可選上電狀態(tài)和串行輸出端口,可級聯其他ADI控制組件。
    的頭像 發(fā)表于 05-02 14:10 ?93次閱讀
    HMC1019ALP4E 0.5 dB LSB GaAs MMIC 5位數字衰減器,0.1-30GHz技術手冊

    HMC1018ALP4E 1.0 dB LSB GaAs MMIC 5位數字衰減器,0.1-30GHz技術手冊

    HMC1018ALP4E是一款寬帶5位GaAs IC數字衰減器,采用低成本無引腳表貼封裝。在0.1到30.0 GHz頻率下運行,插入損耗低于5.5 dB典型值。對于31 dB的總衰減,衰減器位值為1.0 (LSB)、2、4、8和16。衰減精度非常高,典型步長誤差為±0.4 dB,IIP3為+43 dBm??刂平涌诩嫒軨MOS/TTL,可接受三線式串行輸入。HMC1018ALP4E具有用戶可選上電狀態(tài)和串行輸出端口,從而級聯其他ADI控制組件。
    的頭像 發(fā)表于 05-02 14:00 ?81次閱讀
    HMC1018ALP4E 1.0 dB LSB GaAs MMIC 5位數字衰減器,0.1-30GHz技術手冊

    光刻圖形轉化軟件免費試用

    光刻圖形轉化軟件可以將gds格式或者gerber格式等半導體通用格式的圖紙轉換成如bmp或者tiff格式進行掩模版加工制造,在掩膜加工領域或者無掩膜光刻領域不可或缺,在業(yè)內也被稱為矢量圖形光柵化軟件,或者MDP軟件。 現有可免費試用的光刻圖形轉化軟件,可實現最高1nm精度的大型圖形轉換,同時只需要的少量的電腦內存就可以運行。如需要請聯系我,謝謝!
    發(fā)表于 05-02 12:42

    HMC346AMS8GE GaAs MMIC SMT電壓可變衰減器,DC-8GHz技術手冊

    HMC346AMS8GE是一款吸收式電壓可變衰減器(VVA),采用8引腳表貼封裝,工作頻率范圍為DC - 8 GHz。它集成了片內基準電壓衰減器,可配合外部運算放大器使用,提供0至-5V的簡單單電壓衰減控制。該器件非常適合模擬直流控制信號必須在30 dB幅度范圍內控制RF信號電平的設計。具體應用包括微波、點對點和VSAT無線電中的AGC電路和多增益級溫度補償。
    的頭像 發(fā)表于 05-02 11:13 ?47次閱讀
    HMC346AMS8GE GaAs MMIC SMT電壓可變衰減器,DC-8GHz技術手冊