999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通過Reentrant Read Write Lock實現導彈遙測系統接收終端小型化的研究

2018-07-10 09:25:50張欽顧仰
電腦與電信 2018年4期
關鍵詞:系統

張欽顧仰 鄧 迪 王 宇

(上海航天電子技術研究所,上海 200109)

1 概述

近年來,智能終端設備取得了突飛猛進的發展,Android(以下稱安卓)系統可謂是頭號功臣,居功甚偉。2007年11月5日,谷歌公司首次向外界介紹了安卓系統,使得安卓系統可以進入大家的視野。它基于Linux系統開發,主要用于智能終端設備,例如平板電腦和智能手機。由于其完全開源,導致其傳播非常快,迅速占領了一半以上的市場占有率,成為當下最主流的智能終端設備操作系統。

隨著導彈遙測系統的通用化、小型化要求越來越高,基于ARM的平板電腦硬件平臺成為了新的選項之一。相較于過去的地面測試設備和筆記本的組合,手持平板設備有以下優點:

(1)體積小,便于攜帶,適應復雜多變的作戰環境;(2)成本低,更換方便,提供更好的后勤保障選擇;(3)智能一體化,具有更高的保密性和可靠性。

然而手持平板設備相比傳統筆記本也有一些不足,比如CPU等核心器件的性能沒有筆記本強大,所以為了達到使用要求必須同時使用多核CPU并行處理數據。這就面臨了Java開發中經常出現的高并發問題。為了解決單線程轉多線程帶來的高并發問題,讀寫鎖是一個很好的選擇。

2 多線程加鎖

2.1 高并發問題

與傳統順序執行程序相比,Java并發程序中多線程的線程安全一直是困擾廣大設計師的難題。通常Java在處理數據時都會把變量存在主內存,使用變量時都是把變量拷貝到自己的工作空間進行使用,待使用完后重新賦值回主內存。

圖1 Java內存訪問

但是如果是多核系統架構,就會產生風險。因為每個CPU核都擁有獨立的運算控制器,如果他們同時把同一個變量拷貝到線程內存進行計算,那么計算完成時,后一個線程的回歸值會覆蓋前一個線程的回歸值,造成共享變量不可見,導致出現臟數據和不可預期的結果。

圖2 多線程導致的共享變量不可見

2.2 Synchronized(以下稱同步鎖)的用途

當一個線程讀取內存時同步鎖會給該內存加鎖,直到訪問完畢之后釋放鎖。其他線程如果想要訪問,就會發現內存被鎖上,導致線程被堵塞。這樣做可以保證同時只有一個線程訪問,以此確保數據唯一性。

圖3 Synchronized獨占鎖

3 Reentrant Read Write Lock(以下稱讀寫鎖)原理

同步獨占鎖在保證數據唯一的情況下,會導致其他沒有獲取內部鎖的線程堵塞。如果程序寫入內存次數占比遠遠高于內存讀取次數,使用同步鎖可以有效規避高并發;但是一旦程序讀取內存次數占比遠遠高于內存寫入次數時,線程堵塞會大大影響性能。使用讀寫鎖可以有效解決這個問題。當運用讀寫鎖時,寫入加鎖,其他線程不能讀取和寫入,但是讀取加鎖時,其他線程只是不能寫入,不影響讀取操作,所以讀寫鎖本質上是一種可重入鎖。

由于遙測主要用于接收數據,導致其程序主要讀取數據,僅僅在判斷數據是否正確時需要寫入數據。而讀取操作并沒有必要使用同步鎖,所以讀寫鎖更適合。

圖4 Reentrant Read Write Lock結構

通過讀寫鎖的方法,對讀取和寫入分別設置一個內部鎖,大部分時間讀取鎖都解鎖,只在寫入時加鎖。并且加入了一個狀態機記錄其他的上鎖狀態的對應情況。

public Reentrant Read Write Lock(boolean fair){

sync=fair?new Fair Sync():new Non fair Sync();

reader Lock=new Read Lock(this);

writer Lock=new Write Lock(this);

}

/**Possible state transitions:

*NEW->COMPLETED->RECEIVE正常的上鎖狀態

*NEW->COMPLETED->LAUNCH其他的上鎖狀態

*NEW->STOP停止

*NEW->EXIT關閉

*NEW->INTERRUPTING->INTERRUPTED中斷

*/

private volatile int state;

private static final int RECEIVE=1;

private static final int LAUNCH=2;

private static final int INTERRUPTING=3;

private static final int STOP=4;

private static final int INTERRUPTED=5;

private static final int COMPLETED=6;

private static final int EXIT=7;

當遙測接收數據時,只讀取不寫入,狀態機state=1;當接收一段數據進行數據比對時,開啟寫入鎖,狀態機state=2。由于遙測接收寫入的數據不依賴于當前值,所以可以用volatile替代Synchronized,不僅不會影響線程調度,還能解決重排序問題。

通過分析讀取和寫入的高低權重,將權重排序并分別加鎖和解鎖,做到優先處理高權重請求,優化處理流程的同時保證數據的唯一,并且在出現異常的時候提供中斷功能,確保遙測監控的安全。

4 結束語

本文在同步鎖的基礎上,討論了運用讀寫鎖原理解決ARM芯片多線程高并發的問題,為導彈遙測接收端移植平臺實現小型化提供新的思路和新的方法,為將來的導彈適應多環境高機動作戰提供可行性。

[1]鄭逸凡.高并發網站的前端優化技術研究[J].通化師范學院學報,2015(08):12-14.

[2]陳涵生.Java語言與Java技術[J].計算機工程,1997(04):3-6.

[3]丁衛峰.亦步亦趨的代碼移植——從Linux到Windows的代碼移植[J].程序員:CSDN開發高手,2004(2):93-96.

[4]吉建平.選取我國代碼制圖文電視糾錯碼的幾點考慮[J].廣播與電視技術,1988(03):26-31,35.

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产精品天干天干在线观看| 欧美成人一区午夜福利在线| 国产婬乱a一级毛片多女| 国产青榴视频在线观看网站| 成年午夜精品久久精品| 激情综合网激情综合| 亚洲视频影院| 久久免费看片| 亚洲综合欧美在线一区在线播放| 久久国产免费观看| 亚洲午夜福利在线| 老司国产精品视频91| 3344在线观看无码| 青青草原国产| 午夜精品区| 东京热一区二区三区无码视频| 91在线激情在线观看| 久久久黄色片| 亚洲成年网站在线观看| 欧美性久久久久| 亚洲成人一区在线| 精久久久久无码区中文字幕| 亚洲男人的天堂久久精品| 成人va亚洲va欧美天堂| 国产乱人伦AV在线A| 日韩在线影院| 99久久人妻精品免费二区| 欧美黄网站免费观看| 一区二区三区在线不卡免费 | 极品私人尤物在线精品首页| 99无码中文字幕视频| 国产91在线|中文| 五月婷婷综合网| 亚洲一区第一页| 激情综合网址| 亚洲另类色| 麻豆国产精品一二三在线观看| 亚洲一区二区在线无码| 麻豆国产精品一二三在线观看 | 54pao国产成人免费视频| 91香蕉视频下载网站| 91麻豆国产视频| 午夜激情婷婷| 亚洲精品欧美重口| 精品一区二区三区水蜜桃| 国产后式a一视频| 国产精品自拍合集| 在线观看91精品国产剧情免费| 玖玖免费视频在线观看| 久久视精品| 自偷自拍三级全三级视频| 亚洲国产成人麻豆精品| 就去色综合| 日韩一区二区三免费高清| 亚洲制服丝袜第一页| 欧美性久久久久| 亚洲成人播放| 欧美日韩北条麻妃一区二区| 91福利免费视频| 日本不卡视频在线| 在线观看精品国产入口| 无码久看视频| 亚洲无码在线午夜电影| 国产中文一区二区苍井空| 亚洲—日韩aV在线| 中文无码精品a∨在线观看| а∨天堂一区中文字幕| 性色一区| 中国一级特黄大片在线观看| 91成人试看福利体验区| 欧美精品啪啪| 免费精品一区二区h| 亚洲无码高清视频在线观看 | 欧美在线国产| 99热这里都是国产精品| av色爱 天堂网| 欧美综合区自拍亚洲综合绿色| 国产青榴视频| 国产区91| 国产黑人在线| 黄色在线网| 中文字幕乱码中文乱码51精品|