freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的判斷dtu超時(shí)功能的研究與設(shè)計(jì)畢業(yè)論文設(shè)計(jì)(編輯修改稿)

2025-07-24 18:14 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ){ //............ synchronized(a){ //......... } //........ } public void m2(){ //............ synchronized(b){ //......... } //........ 8 } } 這種情況下,是實(shí)現(xiàn)代碼塊鎖定,鎖定的對(duì)象是變量 a 或 b。 (注意:a 、b 都是非 static 的)如果有一個(gè) 類實(shí)例: do = new Demo2(),另外有兩個(gè)線程:thread1,thread2,都調(diào)用了 do 對(duì)象,那么,在同一時(shí)間,如果 thread1 調(diào)用了(),則 thread2 在該時(shí)間內(nèi)可以訪問 ()。但不能訪問 () 的同步塊, 因?yàn)?a 被 thread1 鎖定了。若此代碼里 a、b 變量用 static 修飾,其鎖定的對(duì)象都是類 Demo2,而不是類的實(shí)例,即在多線程中,其共享的資源是屬于類的,而不是屬于類對(duì)象的。在這種情況下,如果 thread1 訪問了這 2 個(gè)方法中的任何一個(gè), 在同一時(shí)間內(nèi)其它任何線程都不能訪問 這 2 個(gè)方法。 哈希表 哈希表的定義及其構(gòu)造方法哈希表是一種重要的存儲(chǔ)方式,也是一種常見的檢索方法,是基于哈希表的 Map 接口的實(shí)現(xiàn)。此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用 null 值和 null 鍵。除了非同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同。其基本思想是將關(guān)系碼的值作為自變量,通過一定的函數(shù)關(guān)系計(jì)算出對(duì)應(yīng)的函數(shù)值,把這個(gè)數(shù)值解釋為結(jié)點(diǎn)的存儲(chǔ)地址,將結(jié)點(diǎn)存入計(jì)算得到存儲(chǔ)地址所對(duì)應(yīng)的存儲(chǔ)單元。檢索時(shí)采用檢索關(guān)鍵碼的方法尋找對(duì)應(yīng)的節(jié)點(diǎn)?,F(xiàn)在哈希表有一套完整的算法來(lái)進(jìn)行插入、刪除和解決沖突。在 Java 中哈希表用于存儲(chǔ)對(duì)象,實(shí)現(xiàn)快速檢索?!?  K,V提供了若干種方法讓用戶很方便地使用哈希表,而不需要考慮其真正如何工作的?!?  哈希表類中提供了三種構(gòu)造方法,分別是:    public HashMap ()    public HashMap (int initialcapacity)public HashMap (int initialCapacity,float loadFactor)public HashMap(Map? extends K,? extends V m)    參數(shù) initialCapacity 是 HashMap 的初始容量,它的值應(yīng)大于 0。loadFactor 又稱裝載因子,是一個(gè) 到 之間的 float 型的浮點(diǎn)數(shù)。它是一個(gè)百分比,表明了哈希表何時(shí)需要擴(kuò)充,例如,有一哈希表,容量為 100,而裝載因子為 ,那么當(dāng)哈希表 90%的9容量已被使用時(shí),此哈希表會(huì)自動(dòng)擴(kuò)充成一個(gè)更大的哈希表。如果用戶不賦這些參數(shù),系統(tǒng)會(huì)自動(dòng)進(jìn)行處理,而不需要用戶操心?!?  HashMap 提供了基本的插入、檢索等方法?!?  ■插入    public V put(K key,V value)在此映射中關(guān)聯(lián)指定值與指定鍵。如果該映射以前包含了一個(gè)該鍵的映射關(guān)系,則舊值被替換?!?  ■檢索    public boolean containsValue(Object value)如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true。 public SetK keySet()返回此映射中所包含的鍵的 Set 視圖。該 set 受映射的支持,所以對(duì)映射的更改將反映在該 set 中,反之亦然。如果在對(duì) set 進(jìn)行迭代的同時(shí)修改了映射(通過迭代器自己的 remove 操作除外),則迭代結(jié)果是不確定的。該 set 支持元素的移除,通過 、removeAll、retainAll 和 clear 操作可從該映射中移除相應(yīng)的映射關(guān)系。它不支持 add 或 addAll 操作。 public CollectionV values()返回此映射所包含的值的 Collection 視圖。該 collection 受映射的支持,所以對(duì)映射的更改將反映在該 collection 中,反之亦然。如果在對(duì) collection 進(jìn)行迭代的同時(shí)修改了映射(通過迭代器自己的 remove 操作除外),則迭代結(jié)果是不確定的。該collection 支持元素的移除,通過 、removeAll、retainAll 和 clear 操作可從該映射中移除相應(yīng)的映射關(guān)系。它不支持 add 或 addAll 操作。 public SetK,V entrySet()返回此映射所包含的映射關(guān)系的 Set 視圖。 該 set 受映射支持,所以對(duì)映射的更改將反映在此 set 中,反之亦然。如果在對(duì) set 進(jìn)行迭代的同時(shí)修改了映射(通過迭代器自己的 remove 操作,或者通過在該迭代器返回的映射項(xiàng)上執(zhí)行 setValue 操作除外),則迭代結(jié)果是不確定的。該 set 支持元素的移除,通過 、removeAll、retainAll 和 clear 操作可從該映射中移除相應(yīng)的映射關(guān)系。它不支持 add 或 addAll 操作。 10    ■刪除    public V remove(Object key)從此映射中移除指定鍵的映射關(guān)系(如果存在)。 public void clear()從此映射中移除所有映射關(guān)系。此調(diào)用返回后,映射將為空。 線程 線程的設(shè)計(jì)在 Java 中,創(chuàng)建線程的方法有兩種:一種是通過創(chuàng)建 Thread 類的子類來(lái)實(shí)現(xiàn);另一種是通過實(shí)現(xiàn) Runnable 接口的類來(lái)實(shí)現(xiàn)。這兩種創(chuàng)建線程方法并沒有本質(zhì)上的區(qū)別,但是由于 Java 不允許多重繼承,所以當(dāng)一個(gè)類要繼承另一個(gè)非 Thread 類而實(shí)現(xiàn)多線程的話,只能通過實(shí)現(xiàn) Runnable 接口的方式來(lái)實(shí)現(xiàn)。 通過 Thread 類實(shí)現(xiàn) 定義一個(gè)線程類,他繼承類 Thread 并重寫其中的 run()方法。這時(shí)在初始化這個(gè)類的實(shí)例時(shí),目標(biāo)對(duì)象 target 可以為 null,表示這個(gè)實(shí)例本身具有線程體。由于 Java 只支持單繼承,用這種方法定義的類不能再繼承其他類。1Thread 類定義的用來(lái)幫助管理線程的方法主要包括以下內(nèi)容 : ● void run()方法:線程的入口點(diǎn),運(yùn)行線程中的代碼。 ● void start()方法:通過調(diào)用運(yùn)行方法來(lái)啟動(dòng)線程,使之由出生狀態(tài)轉(zhuǎn)入就緒狀態(tài)?!駐oid sleep(long milis):在一段時(shí)間內(nèi)掛起線程,令線程睡眠,在此期間,線程不消耗 CPU 資源;以毫秒為單位?!?void interrupt():中斷線程?!?boolean isAlive():判定線程是否仍在在運(yùn)行,出于活動(dòng)狀態(tài)?!?void stName(String threadName):改變線程的名字。● String getName():獲取由 setName()方法實(shí)質(zhì)的線程名字的字符串。11● Yield():將 CPU 控制權(quán)主動(dòng)移交到下一個(gè)可運(yùn)行的線程?!?setPriority(int p):設(shè)置線程優(yōu)先級(jí)。 ● getPriority():獲得線程優(yōu)先級(jí)?!?Join():等待一個(gè)線程終止。 實(shí)現(xiàn) Runnable 接口創(chuàng)建線程的最簡(jiǎn)單的方法就是創(chuàng)建一個(gè)實(shí)現(xiàn) Runnable 接口的類。然后根據(jù)工作需要重新設(shè)計(jì)線程的 run 方法;再建立該類的對(duì)象。Runnable 抽象了一個(gè)執(zhí)行代碼單元。你可以通過實(shí)現(xiàn) Runnable 接口的方法創(chuàng)建每一個(gè)對(duì)象的線程。為實(shí)現(xiàn) Runnable 接口,一個(gè)類僅需實(shí)現(xiàn)一個(gè) run()的簡(jiǎn)單方法。 線程的生命周期 每個(gè)線程的生命周期一共包括 5 種狀態(tài):出生,就緒,運(yùn)行,阻塞和死亡。線程從出生到死亡的過程稱為線程的生命周期。通過特定的操作可以進(jìn)行狀態(tài)間的轉(zhuǎn)換。 出生當(dāng)用關(guān)鍵字 new 和 thread 類或其子類建立了一個(gè)線程對(duì)象后,該線程就處于出生狀態(tài)。 Thread 線程名=new Thread() ;處于新建狀態(tài)的線程只是一個(gè)空閑的線程對(duì)象,系統(tǒng)并沒有為他分配資源。在調(diào)用start 方法之前,線程就一直處于出生狀態(tài)。 就緒在調(diào)用了 start 方法之后,線程就進(jìn)入就緒狀態(tài),即被加入到處于就緒狀態(tài)的線程序列中,在等待 CPU 時(shí)間片。() ; 運(yùn)行 當(dāng)處于線程序列中的線程獲得 CPU 時(shí)間片的時(shí)候,該線程就會(huì)自動(dòng)調(diào)用其 run方法,進(jìn)入運(yùn)行狀態(tài)。124 程序的詳細(xì)設(shè)計(jì) 程序流程圖判斷 DTU 超時(shí)功能程序共有 8 個(gè) Java 源文件。重要之間的關(guān)系如下圖; 圖 2 類之間的關(guān)系該文件是 java application 程序,負(fù)責(zé)創(chuàng)建程序的主窗口。該類含有 init 方法,程序從該類開始執(zhí)行。該文件生成的類負(fù)責(zé)將服務(wù)器端套接字綁定端口號(hào)和 IP 地址,啟動(dòng)服務(wù)器,建立監(jiān)聽系統(tǒng)。當(dāng)有客戶端發(fā)來(lái)連接請(qǐng)求時(shí)即建立連接,然后啟動(dòng)工作線程。該文件生成的類的對(duì)象代表一個(gè)客戶端節(jié)點(diǎn),節(jié)點(diǎn)里存儲(chǔ)著客戶端發(fā)向服務(wù)器端的信息、客戶端最后一次與服務(wù)器端通訊的時(shí)間、客戶端的 IP 地址和端口號(hào)、客戶端套接字以及該節(jié)點(diǎn)在哈希表中所對(duì)應(yīng)的鍵值。該文件生成的類負(fù)責(zé)創(chuàng)建工作線程。接受并處理客戶端發(fā)向服務(wù)器端的數(shù)據(jù)。每接受一次數(shù)據(jù),都要根據(jù)該數(shù)據(jù)對(duì)這個(gè)工作線程對(duì)應(yīng)的客戶端節(jié)點(diǎn)里的信息進(jìn)行更新。該文件生成的類負(fù)責(zé)對(duì)哈希表 1 中各客戶端節(jié)點(diǎn)最后一次與服務(wù)器端通訊的時(shí)間進(jìn)行檢查。 使用迭代器遍歷哈希表 1,查出超時(shí)的客戶端節(jié)點(diǎn)便將其鍵值放入哈希表 2, 等輪詢一周結(jié)束,用迭代器遍歷哈希表 2 將哈希表 1 中超時(shí)的客戶端節(jié)點(diǎn)踢下線并將其從哈希 表 1 中刪除。13(測(cè)試類)該文件生成的類負(fù)責(zé)向服務(wù)器端發(fā)送數(shù)據(jù)。首先在其主函數(shù)中通過構(gòu)造函數(shù)Socket(IAddress address, int port)綁定服務(wù)器端的IP地址和端口號(hào),然后啟動(dòng)定時(shí)器。(測(cè)試類)該文件主要負(fù)責(zé)創(chuàng)建一個(gè)定時(shí)器,每隔一定時(shí)間向服務(wù)器端發(fā)送數(shù)據(jù)。 數(shù)據(jù)字典 主類 Server 成員變量(見表 1)表 1 Server 類的主要成員變量(屬性)變量名 變量類型 可見性 成員變量描述ta TextArea 文本區(qū)域lb1 Label 標(biāo)簽lb2 Label 標(biāo)簽tf1 TextField 文本框tf2 TextField 文本框btn Button 按鈕 方法(見表 2)表 2 Server 類的主要方法名稱 功能 返回值 備注Server 創(chuàng)建程序主窗口 構(gòu)造方法actionPerformed 處理 ActionE
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1