暑期java學習筆記(二) 多執行緒與網路通訊

2021-08-19 14:19:15 字數 1817 閱讀 5759

一、多執行緒

繼承thread,收到單繼承的影響

常用runnable介面,實現run()方法,不能丟擲異常,沒有返回值

實現callable介面,重寫call()方法,可以丟擲異常,有返回值

join:合併兩個執行緒;

eg:執行緒b//暫停本執行緒

sleep:靜態方法,休眠一段時間,不釋放鎖。

1)用在與時間相關:倒計時;

2)模擬網路延遲;

public class countdown 

}}}

currentthread:靜態方法。獲取當前執行緒的引用;

setname():設定執行緒名稱;

getname():返回執行緒名稱;

isalive():返回執行緒狀態,true&false;

setpriority設定優先順序,不是絕對的優先順序,而是概率;

同步:(synchronize)

1.同步塊:

synchronize(引用|this|類.class){}

2.同步方法:

(二)、網路程式設計

1.基礎知識:

網路:將不同區域的計算機連線起來。

埠號:計算機內的虛擬概念,用來區分計算機內不同軟體

資源定位:url 統一資源定位器;uri 統一資源識別符號

資料傳輸:tcp/ip協議,udp協議;資料傳輸-資料封裝與恢復

/**注:

*同乙個協議下埠號不能重複,不同協議埠號可以重複

*1024以下的埠不使用(作業系統預留埠)

*tcp協議:類似打**,面向連線,安全可靠,效率低下

*udp協議:類似發簡訊,非面連線,效率高,不安全

*dns:網域名稱解析。將www.baidu.com/172.0.0.10這樣的網域名稱解析 

2.inetaddress·:封裝ip及dns

inetaddress addr = inetaddress.getlocalhost();//獲得本地inetaddress物件

system.out.println(addr.gethostaddress());//獲得ip位址

system.out.println(addr.gethostname());//獲得網域名稱

//根據網域名稱獲得inetaddress物件

system.out.println(addr.gethostaddress());//返回ip位址

system.out.println(addr.gethostname());//返回網域名稱

//根據ip位址獲得inetaddress物件

addr = inetaddress.getbyname("111.13.100.91");

system.out.println(addr.gethostaddress());//返回ip位址

system.out.println(addr.gethostname());//為了安全性考慮,如果ip不存在或者dns不解析,則返回自身

3.inetsocketaddress:封裝埠

public static void main(string args)
4.url的組成:協議    網域名稱    埠(http預設為80)    資源檔名

eg;資源基本上都是相對路徑)

public static void main(string args) throws malformedurlexception

java多執行緒學習筆記(二)

8 執行緒的狀態 初始狀態 使用new關鍵字建立乙個執行緒,則執行緒就處理初始狀態。就緒狀態 建立執行緒後,需要我們手動呼叫start方法,來開啟執行緒,start方法會新建乙個執行緒並讓這個執行緒執行run方法。有的同學可能不理解,為什麼不直接呼叫run方法,請記住呼叫run來開啟新執行緒,它只會...

Java多執行緒學習筆記

程序與執行緒 1.程序 執行中的程式 乙個程序至少包含乙個執行緒 2.執行緒 程序中負責程式執行的執行單元 執行緒本身依靠程式進行執行 執行緒是程式中的順序控制流,只能使用分配給程式的資源和環境 3.單執行緒 程式中只存在乙個執行緒,實際上主方法就是乙個主線程 4.多執行緒 在乙個程式中執行多個任務...

java多執行緒學習筆記

1 執行緒是乙個程式內部不同的執行路徑 2 生成執行緒只要能使用介面就不要繼承,繼承後就不能繼承其他的類,比較死。而且繼承的run方法不能丟擲與父類不同的異常。比如sleep的intterruptedexception 3 start方法只是說我準備好了,進入就緒狀態了,等待排程後才進入執行狀態 4...