多執行緒和套接字入門學習筆記

2021-06-12 09:58:43 字數 2438 閱讀 9150

1.程序與執行緒

乙個程序至少有乙個執行緒

同乙個程序中的多個執行緒之間可以「

併發」(

本質是快速切換)執行,比如一邊吃飯,一邊看電視

暫存器的作用:在「併發」到其他執行緒,儲存當前程式執行進展

不同的執行緒可以執行同樣的函式

2.執行緒實現

編寫執行緒需要執行的方法

引用system.threading命名空間

例項化thread類,傳入方法的委託,執行緒已經產生,未執行

呼叫start方法,標記執行緒可以被cpu執行了,但具體時間有cpu決定

3.前台,後台執行緒

前台執行緒:預設,只有所有的前台執行緒才能完成程式的結束

後台執行緒:只要所有的前台執行緒結束,執行緒也隨即結束

4.多執行緒方法的載入

thread

threadfirst =

newthread

(counttime);  //傳入的是委託

threadfirst.isbackground =

true

; threadfirst.start();

執行緒中使用委託,是為了避免多執行緒間使用公用函式出現問題

計算時間

//計算時間間隔的一種方法

datetime

begintime =

datetime

.now;

timespan

ts = begintime.subtract(

datetime

.now);

messagebox

.show(ts.totalseconds.tostring()); 5.

執行緒實現帶引數的方法

//////

執行緒執行的帶引數方法

//////

private

void

showhas(

object

o)

....

thread

ts =

newthread

(showhas);

ts.isbackground =

true

; ts.start(textboxname.text);

6.模擬線程定義

public

class

mythread

//模擬線程定義

public

void

start()

// ----------------------帶引數

parameterizedthreadstart

pts;

public

mythread(

parameterizedthreadstart

pts)

//要求使用者在new的時候傳入委託

public

void

start(

object

o)

} 7.多個引數傳入

//////

執行緒執行的帶多個引數方法

//////

private

void

showhasmany(

object

li)

} }

//---------------------多個引數,list集合

private

void

buttonmanyobject_click(

object

sender,

eventargs

e) );

}8.ip和埠

9.socket相關概念

socket英文原意是「孔」或「插座」。用於表述ip位址和埠,是乙個通訊鏈的控制代碼。

10.socket一般應用模式

監聽客戶端請求,客戶端, 連線套接字 

服務端的socket(至少兩個)

乙個負責接收客戶端連線請求

沒成功接收到乙個客戶端的連線便在服務端產生乙個套接字

~為接收客戶端連線時建立

~每乙個客戶端對應乙個socket

客戶端socket

客戶端socket

必須制定連線服務端位址和埠

通過建立乙個socket物件來初始化乙個到伺服器端的tcp連線

套接字學習筆記

1.socket函式 int socket int domain,int type,int protocol 作用 建立套接字描述符 domain 協議族 af unix af unix域協議族,本機的程序通訊時使用 af inet internet協議族 af iso iso協議族 type 指定...

執行緒同步和執行緒非同步 同步套接字非同步套接字

執行緒同步和執行緒非同步有什麼區別?重要基礎知識 打個比方,如果你在等乙個人,同步的時候,你會一直等到她來了之後才做其他事情,這個過程除了等待你啥都不會做,非同步的時候,你一邊在等,可能一邊玩遊戲或者是看報紙什麼的,一直到她到來,你的等待狀態才會結束 在實現上,同步的過程會阻塞程序的所有其他操作,將...

socket 套接字學習筆記

socket 方法 receive byte 從繫結的 socket 套接字接收資料,將資料存入接收緩衝區。send byte 將資料傳送到連線的 socket。accept 為新建連線建立新的 socket。注意 如果您使用的是面向連線的協議,則 remoteendpoint 屬性將獲取包含 so...