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在多段調速系統中的應用
主站蜘蛛池模板: 99精品免费在线| 久久婷婷国产综合尤物精品| 婷婷色中文| 狠狠v日韩v欧美v| AV天堂资源福利在线观看| 欧美日韩精品一区二区视频| 亚洲综合在线网| 久久精品免费看一| 国产成人AV大片大片在线播放 | 日韩精品成人网页视频在线 | 伊人久久久久久久| 一级毛片免费观看不卡视频| 亚洲国产黄色| 真实国产精品vr专区| 91精品久久久久久无码人妻| 欧美一区二区精品久久久| 爆乳熟妇一区二区三区| 91国内在线观看| YW尤物AV无码国产在线观看| 国产精品网址你懂的| 日韩a在线观看免费观看| 国产福利影院在线观看| 国产成人精品高清不卡在线| 亚洲无码A视频在线| 国产靠逼视频| 久久国产精品嫖妓| 久青草国产高清在线视频| 99这里精品| 国产69精品久久| 亚洲无卡视频| 狠狠色丁香婷婷| 狠狠做深爱婷婷综合一区| 欧美翘臀一区二区三区| 亚洲综合专区| 91日本在线观看亚洲精品| 色色中文字幕| 无码专区国产精品第一页| 久久精品人人做人人爽电影蜜月| 国产av色站网站| 香蕉网久久| 国产精品一线天| 久草中文网| 亚欧成人无码AV在线播放| 国产不卡一级毛片视频| 国内自拍久第一页| 免费国产高清视频| 制服丝袜一区| 黄色网址免费在线| 亚洲自偷自拍另类小说| 亚洲国产成熟视频在线多多| 国产成人一区免费观看| 99久久这里只精品麻豆| 国产熟睡乱子伦视频网站| 精品视频一区在线观看| 国产精品福利社| 亚洲第一色网站| 亚洲欧美日韩天堂| 国产区在线看| 精品成人一区二区三区电影| 中国国产高清免费AV片| 日日拍夜夜操| 亚洲AV成人一区国产精品| 欧美成人午夜视频| 久久久久无码精品| 最新日韩AV网址在线观看| 国产精品私拍在线爆乳| 一级毛片在线免费视频| 亚洲无码精品在线播放| 久久精品国产在热久久2019| 91成人精品视频| 精品无码人妻一区二区| 青草视频网站在线观看| 亚洲码在线中文在线观看| 亚洲全网成人资源在线观看| 97免费在线观看视频| 久草美女视频| 亚洲午夜福利在线| 国产麻豆福利av在线播放| 国产欧美在线观看一区| 久久99国产乱子伦精品免| 亚瑟天堂久久一区二区影院| 亚洲欧美日韩精品专区|