• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于信號量的視頻監(jiān)控API設(shè)計(jì)與實(shí)現(xiàn)

      2015-12-07 06:58:53李賢軍
      新媒體研究 2015年14期
      關(guān)鍵詞:信號量線程客戶端

      李賢軍

      安徽四創(chuàng)電子股份有限公司,安徽合肥 230088

      基于信號量的視頻監(jiān)控API設(shè)計(jì)與實(shí)現(xiàn)

      李賢軍

      安徽四創(chuàng)電子股份有限公司,安徽合肥 230088

      隨著平安城市不斷推進(jìn),視頻監(jiān)控成為國家建設(shè)的重點(diǎn)。在視頻監(jiān)控中,監(jiān)控客戶端為重要的組成部分,所有視頻、錄像都要通過客戶端進(jìn)行調(diào)閱查看,可見穩(wěn)定高效的視頻監(jiān)控客戶端的接口(API)設(shè)計(jì)是比較重要的。從目前來看,各視頻廠家提供視頻API各不相同,或多或少都存在著一些問題,使用不習(xí)慣;而且,由于國內(nèi)專業(yè)技術(shù)封閉不公開,對于視頻監(jiān)控API的設(shè)計(jì)也沒有太多相關(guān)關(guān)鍵的資料可循。本文以信號量技術(shù)為核心基礎(chǔ),提供了一套視頻監(jiān)控API設(shè)計(jì)方案,并予以實(shí)現(xiàn),以促進(jìn)視頻監(jiān)控客戶端穩(wěn)定性和高效性。

      信號量;視頻監(jiān)控;API;多線程

      在軟件開發(fā)中,我們常用到計(jì)算機(jī)的各種技術(shù),其中一種就是多線程(或進(jìn)程)互斥與同步。對于不同的操作系統(tǒng),線程的互斥與同步實(shí)現(xiàn)方式各不相同,對于windows和Linux系統(tǒng)都有如下方式:消息隊(duì)列、信號量和共享內(nèi)存,其中信號量是在控制多線程同步中使用比較多一種方式。信號量是一個(gè)整數(shù):大于或等于0時(shí)代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù);小于0時(shí)代表正在等待使用臨界區(qū)的進(jìn)程數(shù);用于互斥的信號量初始值應(yīng)大于0。在視頻監(jiān)控API開發(fā)中,我們經(jīng)常需要同時(shí)操作、或者快速操作某一功能(如視頻播放、視頻控制、云臺控制等),此時(shí)會在短時(shí)間內(nèi)進(jìn)行很多次操作,并且所有的操作都需要通過網(wǎng)絡(luò)與服務(wù)器進(jìn)行交互。將信號量結(jié)合到視頻API設(shè)計(jì)實(shí)現(xiàn)中,利用信號量特點(diǎn),控制多線程并發(fā)將操作指令按操作順序發(fā)送出去,并異步等待接收操作結(jié)果。

      1 視頻監(jiān)控API基本組成

      通用的視頻監(jiān)控客戶端API設(shè)計(jì)的基本邏輯組成,包括:對外接口、視頻管理、視頻設(shè)備管理服務(wù)器和視頻服務(wù)器。對外接口,是直接面向用戶使用的接口,如登陸、退出、實(shí)時(shí)視頻播放與停止、云臺控制、錄像查閱與點(diǎn)播控制等;視頻設(shè)備管理服務(wù)器,是負(fù)責(zé)所有設(shè)備管理和與客戶端交互的服務(wù)端,處理一切客戶的請求;視頻服務(wù)器,為流媒體服務(wù)器,負(fù)責(zé)監(jiān)控?cái)z像頭的視頻流轉(zhuǎn)發(fā),以供客戶端點(diǎn)播;視頻管理模塊,為視頻監(jiān)控API設(shè)計(jì)中最為核心部分,負(fù)責(zé)對外接口、視頻設(shè)備管理服務(wù)器以及視頻服務(wù)器之間的一切邏輯管理,包括有多線程控制、網(wǎng)絡(luò)通信、服務(wù)連接管理、視頻連接管理、事務(wù)管理等。

      對外接口和視頻管理模塊為本文視頻監(jiān)控API主要部分,尤其對于視頻管理部分設(shè)計(jì)是非常重要的,該部分設(shè)計(jì)的優(yōu)良,關(guān)乎整個(gè)視頻監(jiān)控API穩(wěn)定性與高效性。以下內(nèi)容著重結(jié)合使用信號量技術(shù),來設(shè)計(jì)實(shí)現(xiàn)視頻管理模塊。

      2 信號量在API中的應(yīng)用

      圖1

      信號量為視頻管理模塊設(shè)計(jì)中重要應(yīng)用部分,是同步各個(gè)線程的關(guān)鍵。如圖1所示,在視頻監(jiān)控API設(shè)計(jì)中,將所有客戶端每一個(gè)請求的指令轉(zhuǎn)為標(biāo)準(zhǔn)的事務(wù),再結(jié)合信號量的變量,在這里我們將結(jié)合信號量的事務(wù)為一個(gè)任務(wù)。在請求時(shí),生成的任何一個(gè)任務(wù)都有一個(gè)唯一的遞增的編號ID,同時(shí)也是一個(gè)操作序列號,表示操作的先后順序,請求通常在一個(gè)線程中,在通過網(wǎng)絡(luò)向服務(wù)器發(fā)送信息之前,初始化信號量為無信號狀態(tài),此時(shí)調(diào)用任務(wù)發(fā)送信息并同時(shí)置信號量為定時(shí)等待狀態(tài)。在等待服務(wù)器返回過程中,利用信號量特點(diǎn),控制線程間安全,可以同時(shí)并發(fā)多個(gè)請求,此時(shí)各個(gè)接口的調(diào)

      用是線程安全的,客戶端可以同時(shí)調(diào)用當(dāng)前接口或其他接口,以快速完成其他指令的調(diào)用,避免了客戶端由于網(wǎng)絡(luò)原因,或服務(wù)器處理慢等原因出現(xiàn)時(shí)間上累積等待響應(yīng)問題,最終導(dǎo)致客戶端崩潰。

      在客戶端發(fā)出信息以后,為避免由于各種異常請求無法返回原因,信號量統(tǒng)一采用的是定時(shí)等待,在固定的時(shí)間內(nèi)如果服務(wù)器對于請求依然沒有反饋,信號量會自動(dòng)產(chǎn)生信號,讓等待以超時(shí)的形式觸發(fā),終止客戶端的等待狀態(tài),相應(yīng)的任務(wù)也會終止移除;如果,服務(wù)器對于客戶的請求在指定的時(shí)間內(nèi)返回,此時(shí)在返回的線程中,會根據(jù)返回信息的編號ID找到對應(yīng)的任務(wù),賦予反饋信息,并觸發(fā)等待線程的信號量,讓請求返回,終止并移除 任務(wù)。

      3 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

      在視頻監(jiān)控API設(shè)計(jì)中,為了完善整個(gè)API的設(shè)計(jì),一般還需要:認(rèn)證授權(quán)、視頻協(xié)議、視頻播放連接管理、加解密、網(wǎng)絡(luò)通信、以及多線程和日志記錄等模塊相互協(xié)作。

      為視頻監(jiān)控API 各個(gè)模塊相互關(guān)系圖,在圖中虛線部分為信號量的應(yīng)用組成,連接著所有模塊,為關(guān)鍵的樞紐,負(fù)責(zé)完成了指令傳送與接收、保持服務(wù)連接、和重建視頻連接等重要功能。

      4 結(jié)束語

      本文提供了一種基于信號量的視頻監(jiān)控客戶端API設(shè)計(jì)實(shí)現(xiàn)的解決方案,詳細(xì)講述了信號量在API中應(yīng)用的方法,并設(shè)計(jì)了整個(gè)API邏輯框架,實(shí)現(xiàn)了視頻監(jiān)控客戶端API多線程多并發(fā)的穩(wěn)定 調(diào)用。

      [1]王楊,朱朝霞.基于信號量的Linux多線程同步研究[J].計(jì)算機(jī)與數(shù)字工程,2004.

      [2]劉曉平,等.基于信號量的生產(chǎn)者一消費(fèi)者問題設(shè)計(jì)與分析[J].合肥工業(yè)大學(xué)學(xué)報(bào),2008(10).

      [3]百度文庫.http://wenku.baidu.com.

      G2

      A

      2096-0360(2015)14-0023-01

      李賢軍,工作單位為安徽四創(chuàng)電子股份有限公司。

      猜你喜歡
      信號量線程客戶端
      基于STM32的mbedOS信號量調(diào)度機(jī)制剖析
      Nucleus PLUS操作系統(tǒng)信號量機(jī)制的研究與測試
      縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      淺談linux多線程協(xié)作
      μC/OS- -III對信號量的改進(jìn)
      Linux操作系統(tǒng)信號量機(jī)制的實(shí)時(shí)化改造
      客戶端空間數(shù)據(jù)緩存策略
      Linux線程實(shí)現(xiàn)技術(shù)研究
      宣武区| 新蔡县| 邵武市| 镇雄县| 房山区| 富民县| 南郑县| 福安市| 从江县| 灵丘县| 库伦旗| 淅川县| 彰化县| 察雅县| 山丹县| 阿荣旗| 合水县| 苏尼特左旗| 平武县| 大埔区| 牡丹江市| 集安市| 麻江县| 陵川县| 西青区| 方正县| 宁阳县| 元氏县| 苍溪县| 博客| 额济纳旗| 子洲县| 西和县| 岢岚县| 浏阳市| 河曲县| 垣曲县| 黔东| 赤城县| 云浮市| 彭泽县|