標籤:
day24:多線程 【等待喚醒機制】
等待喚醒機制[Object]
wait():讓線程處於等待狀態
notify():喚醒等待線程
實現或者重寫父類方法,出現父類中沒有的異常時,子類只能try catch。
wait():是Object類的方法,可以不用傳參;釋放鎖對象
sleep():是Thread類的靜態方法,需要傳遞參數;不釋放鎖對象
線程優先順序
getProirity():擷取優先順序,預設設定為5,範圍是[1,10]
setProirity():設定優先權
注意:優先順序在一定程度上,可以提高優先順序;少量資料不明顯
線程拓展:
暫停線程:
public static void yeiod()
讓線程更和諧,但是不能完全保證---【等待喚醒機制】
加入線程:
public final void join():
一旦有join()線程,其他線程必須先等待,直到該線程執行完
先啟動要join的線程,再加入當前啟動線程。
守護線程:
public final void setDaemon();
main()方法就是一個線程
設定線程為守護線程,一旦前台線程結束,守護線程結束
網路編程:
socket編程
網路概述
資源共用和資訊傳遞--網路作業系統,網路管理軟體,網路通訊協定
網路模型:
OSI參考模型
物理層--位元流,資料連結層--交換器,網路層--路由器,傳輸層--協議和連接埠
會話層--會話,展示層--加密解密,壓縮解壓,應用程式層--應用軟體
TCP/IP參考模型
應用程式層,傳輸層,網際層,主機至網路層
網路通訊三要素:
IP:
“點分十進位”
IP地址分類:【五類】
IP地址 = 網路編號 + 主機地址
查看本機IP:ipconfig--查看網路IP ping---查看網路是否有問題
ping 127.0.0.1 測試本機網路環境
ping 192.168.x.x
連接埠號碼:
邏輯連接埠
A:每個網路程式都至少會有一個邏輯連接埠
B:用於標示進程的邏輯地址,不同進程標示不一樣;
C:有效連接埠:0~65535,其中0~1024系統使用或保留連接埠。
UDP和TCP協議:【規則】
UDP:
A:資料打包;
B:資料有限制;
C:面向無串連;
D:不可靠;
E:速度快
QQ聊天室(群聊)
TCP:
A:建立串連通道;
B:資料無限制;
C:連線導向(三向交握);
D:可靠;
E:速度慢
藍芽,QQ單聊,打電話
【根據需求應用】
Socket編程:【通訊端編程,網路編程】
為網路編程提供一種機制,封裝了連接埠和IP地址
特點:
兩端都有Socket;
網路通訊其實就是socket間的通訊;
資料在兩個Socket間通過IO流傳輸
InetAddress:
沒有構造方法
A:成員都是靜態
B:返回InetAddress執行個體對象
成員方法:
擷取本地主機:getLocalHost
擷取任意主機:getByName(String ip)
主機名稱:getHostName
主機Ip地址:getHostAddress
UDP協議下編程:
建立Socket服務物件;DatagramSocket
建立資料,並把資料打包;DatagramPacket
發送資料;
關閉資源
注意:連接埠一定一致,
聊天室
【應用程式:網路編程,IO,多線程】
UDP
1.將資料來源和目的封裝成資料包中;
2.不需要建立串連;
3.每個資料報的大小在限制在64k;
4.因無串連,是不可靠協議;
5.不需要建立串連,速度快。
TCP
1.建立串連,形成傳輸資料的通道;
2.在串連中進行大資料量傳輸(資料無限制);
3.通過三向交握完成串連;
4.是可靠協議;
5.必須建立串連,效率會稍低。
Java基礎--第二十四天