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...