【正文】
public void m2(){ //............ synchronized(b){ //......... } //........ 8 } } 這種情況下,是實(shí)現(xiàn)代碼塊鎖定,鎖定的對(duì)象是變量 a 或 b。 Synchronized 加在變量上, (同步塊,鎖定類實(shí)例 ) Java 代碼 public class Demo2 { Object a = new Object()。 因?yàn)?thread1 把 de1 這 個(gè)對(duì)象的鎖使用了,所以無法分給其它線程使用 。 Synchronized 加在方法上, (同步方法,鎖定類實(shí)例 ) Java 代碼 7 public class Demo1 { public synchronized void m1(){ //............... } public void m2(){ //............ synchronized(this){ //......... } //........ } } 這兩種寫法的效果是一樣的,鎖定的都是類實(shí)例。 本設(shè)計(jì)中輪詢機(jī)制的代碼在訪問或刪除哈希表中的客戶端節(jié)點(diǎn)時(shí),必須考慮到此時(shí)可能有新的客戶端向服務(wù)器端發(fā)出連接請(qǐng)求但是輪詢尚未結(jié)束不能將新來的節(jié)點(diǎn)插入哈希表,所以要將輪詢代碼與向哈希表插入節(jié)點(diǎn)的代碼同步起來。 輪詢程序啟動(dòng)以后,會(huì)每隔一段時(shí)間輪詢一次哈希表,對(duì)里面存儲(chǔ)的客戶端節(jié)點(diǎn)中的時(shí)間進(jìn)行檢查,若其大于指定值則默認(rèn)該客戶端節(jié)點(diǎn)已故障,將與其斷開連接。若有客戶端發(fā)來連接請(qǐng)求時(shí),服務(wù)器就專門為這個(gè)客戶 端啟動(dòng)一個(gè)線程來接受并處理該客戶端發(fā)來的數(shù)據(jù);另外服務(wù)器會(huì)創(chuàng)建個(gè)節(jié)點(diǎn)來代表該客戶端,并將該節(jié)點(diǎn)存在哈希表中。所以為了消除這種隱患,迫切需要一種功能能夠準(zhǔn)確查出那些 尸位素餐 的 DTU,然后把它們“踢下線” 以釋放資源 。服務(wù)器與眾多 DTU 通訊時(shí),可能某一 DTU 故障而無法向服務(wù)器發(fā)送數(shù)據(jù),此時(shí)服務(wù)器還在 默默等待該 DTU 傳送的信息。 6 3 總體設(shè)計(jì) 需求分析與設(shè)計(jì)思想: 對(duì)判斷 DTU超時(shí)功能的需求分析 在互聯(lián)網(wǎng)日益發(fā)展的今天, DTU 的使用也越來越廣泛 , 為各行業(yè)之間的信息、產(chǎn)業(yè)融合提供了幫助。 本論文的章節(jié)安排 第 2 章,提出了課題的總體目標(biāo)與主要研究內(nèi)容; 第 3 章,對(duì)判斷 DTU超時(shí)功能的總體設(shè)計(jì),對(duì)設(shè)計(jì)有個(gè)宏觀把握; 第 4 章,對(duì)判斷 DTU超時(shí)功能的具體設(shè)計(jì),詳細(xì)介紹了設(shè)計(jì)過程。 2) 編寫服務(wù)器端接受數(shù)據(jù)的程序,能夠從字節(jié)流里讀取數(shù)據(jù)。此功能 應(yīng)用于服務(wù)器后臺(tái)上,能比較理想得保證通訊連接的時(shí)效性,避免了那些 空占其位,不盡 其守的 DTU。 判斷 DTU 超時(shí) 功能 是 DTU 眾多功能之一,作用就是幫助數(shù)據(jù)中心及時(shí)發(fā)現(xiàn)那些不傳送數(shù)據(jù)卻仍然連接占用大量資源的 DTU,以便讓有限的內(nèi)存資源得到最大化利用。服務(wù)器端 監(jiān)控中心的 Socket 端口監(jiān)聽程序負(fù)責(zé)監(jiān)聽采集終端的連接請(qǐng)求,當(dāng)監(jiān)聽到連接請(qǐng)求后,建立通信鏈路,原來負(fù)責(zé)監(jiān)聽Socket 仍進(jìn)行監(jiān)聽,通信鏈路建立后就可任意交換數(shù)據(jù)了。 DTU 內(nèi)嵌了 TCP/IP 協(xié)議棧,具有 Socket 通訊功能,并提供透明數(shù)據(jù)傳輸通道,用戶只需設(shè)置一些參數(shù)就可實(shí)現(xiàn)將嵌入式系統(tǒng)直接與 Inter 相連,實(shí)現(xiàn)網(wǎng)絡(luò)的互連互通。由于監(jiān)測點(diǎn)分散,分布范圍廣,而且大多設(shè)置在環(huán)境較惡劣的地區(qū),通過電話線傳送數(shù)據(jù)往往事倍功半。 盡管應(yīng)用的行業(yè)不同,但應(yīng)用的原理是相同的, 大都是 DTU和行業(yè)設(shè)備相連,然后和后臺(tái)建立無線的通信連接。 35 1 引言 隨著經(jīng)濟(jì)社會(huì)的不斷發(fā)展和進(jìn)步,無線通信技術(shù)在人們生活中已變得愈發(fā)重要,受到廣泛運(yùn)用。 34 啟動(dòng)服務(wù)器并啟動(dòng)多個(gè)客戶端最后關(guān)閉全部客戶端: 33 : 32 : 18 5 結(jié)論: ....................................................................................................................................... 18 主要參考文獻(xiàn) ............................................................................................................................... 19 致謝 ............................................................................................................................................... 19 附錄 1: ........................................................................................................................................ 19 附錄 2 ............................................................................................................................................ 32 運(yùn)行結(jié)果及界面 14 WorkThread 13 StartServer 13 主類 Server 12 數(shù)據(jù)字典 6 5 本論文的章節(jié)安排 5 研究的主要內(nèi)容 timeout 。 Computer, Anhui Agricultural University, hefei, 230036) Abstract:Things of agriculture based on the Java middleware DTU timeout automatically break function. To use what they have learned this course design are introduced in detail the basic knowledge of Java language, the basic idea of objectoriented program design, method and technology, developed a simple application functions such as work munication programming technology, Inter of things of agriculture based on the Java middleware DTU timeout automatically break function. Agricultural iot were introduced in detail based on the Java middleware DTU timeout automatically disconnect function design method, gives the function of the Java program design, the program can be directly used as a serverside application, receive and process the data. The client and serverside data center DTU via a Socket connection is established, using the transparent transmission of data input and output flow. Serverside programs including the node class, working thread class (used) accept and process data, polling, and hash tables used to store the nodes, synchronization locks and support multiple threads of the client。服務(wù)器端程序主要包括節(jié)點(diǎn)類、工作線程類(接受并處理數(shù)據(jù)所用)、輪詢類等,以及用于存儲(chǔ)節(jié)點(diǎn)的哈希表、同步鎖和支持多客戶端的線程;客戶端程序主要有計(jì)時(shí)器類(每隔一定時(shí)間向服務(wù)器端發(fā)送一數(shù)據(jù))。詳細(xì)地介紹了基于 java的農(nóng)業(yè)物聯(lián)網(wǎng)中間件的 判斷 DTU超時(shí) 功能 的設(shè)計(jì)方法,給出了該功能的 java程序設(shè)計(jì),該程序可直接用作服務(wù)器端程序,接受并處理數(shù)據(jù)。 特色與創(chuàng)新 1. 系統(tǒng)穩(wěn)定,抗干擾能力強(qiáng) 2. 應(yīng)用該功能可以節(jié)省不必要的流量花費(fèi) 指導(dǎo)教師意見 教研室意見 學(xué)院意見 2 基于 java 的 農(nóng)業(yè)物聯(lián)網(wǎng)中間件的研究 —— 判斷 DTU 超時(shí) 功能的研究和設(shè)計(jì) 學(xué)生:詹步康 指導(dǎo)教師: 張武 (安徽農(nóng)業(yè)大學(xué) 信息與計(jì)算機(jī)學(xué)院 合肥 230036) 摘要: 本課程設(shè)計(jì)運(yùn)用了所學(xué)的 Java語言基礎(chǔ)知識(shí),面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想、方法與技術(shù),網(wǎng)絡(luò)通信編程技術(shù)等開發(fā)了簡單應(yīng)用功能 基于 java的農(nóng)業(yè)物聯(lián)網(wǎng)中間件的判斷 DTU超時(shí) 功能。 5 月初 ?5月中 對(duì)系統(tǒng)進(jìn)行調(diào)試、運(yùn)行并修改。 3 月中 ?4月初 研究并分析DTU超時(shí)功能的作用及其應(yīng)用原理。 3. 對(duì)以上工作過程的需要進(jìn)行編程并進(jìn)行模擬測試。 2)獲取當(dāng)前時(shí)間并與最后一次登錄時(shí)間比較,取其差值。 安 徽 農(nóng) 業(yè) 大 學(xué) 畢 業(yè) 論 文(設(shè)計(jì)) 論文題目 基于 java的 判斷 DTU超時(shí) 功能 的研究與設(shè)計(jì) 安徽農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文(設(shè)計(jì))開題報(bào)告 課題名稱 基于 java 的農(nóng)業(yè)物聯(lián)網(wǎng)中間件的 判斷DTU 超時(shí) 功能的研究和設(shè)計(jì) 課題來源 導(dǎo)師指定 學(xué)生姓名 專業(yè) 通信工程 學(xué)號(hào) 指導(dǎo)教師姓名 職稱 副教授 研究內(nèi)容 1