關於多執行緒

2021-08-04 03:59:55 字數 1183 閱讀 9595

關於多執行緒:

多執行緒的意思其實就是可以同時執行多個程式,並且互相之間不受影響;不過先後順序都不確定;

單執行緒的缺點:雖然可以用while迴圈保證服務端可以一直服務,但是每一次只能服務乙個使用者,且read()方法是阻塞方法,如果這個已建立連線的使用者一直沒有發訊息,那麼連線就會一直阻塞在這,直到使用者發訊息,才會往下走,而只有這個連線走完了才會進入下一次連線;

並且,如果某一次連線出現異常,會中斷整個服務端;

有乙個介面runnable;

public inte***ce runnable//thread會自動呼叫這個方法

} 有乙個類thread;

public class thread

public void start()多執行緒實際上呼叫的就是thread類裡的start方法;

而這個方法需要乙個r型別的物件來呼叫它的run方法,所以想要實現多執行緒就要有乙個類實現runnable方法,並且實現run這個方法,然後new乙個thread物件,呼叫它的有參構造方法,傳入這個實現類的物件,再讓thread物件呼叫自身的start方法即可;

簡單案例:

//demo1這個類是runnable的實現類,並且實現了run這個方法;

public class demo1 implements runnable

public void setname(string name)

@override

public void run()

}} //new幾個demo1的物件

public class demo1test }

複雜案例:與socket程式設計結合;

//為了讓服務端可以多執行緒服務,也就是說一次可以服務多個使用者;並且每個執行緒不會相互影響

public class talk implements runnable

@override

public void run() catch (exception e)

}//

public class threadserverdemo

}} //總結,這個案例中,每一次收到連線,就會有乙個執行緒去為這個連線服務,而服務端可以迅速進行下一次迴圈;

另外,每乙個main方法也是乙個執行緒,如果想讓執行緒終止,可以用thread.sleep();括號裡填毫秒數;那麼執行緒就將會停止相應的時間再接著執行;

關於多執行緒

1 程序是不活潑的。程序從來不執行任何東西,它只是執行緒的容器。執行緒總是在某個程序環境中建立的,而且它的整個壽命期都在該程序中。這意味著執行緒在它的程序 位址空間中執行 並且在程序的位址空間中對資料進行操作。因此,如果在單程序環境中,你有兩個或多個執行緒正在執行,那麼這兩個執行緒將共享單個位址空 ...

關於多執行緒

一 什麼情況下適合用多執行緒 1 計算量大,可以分段計算的情況。2 分段計算或者執行,沒有依賴關係的情況。二 多執行緒的實現 1 一般來說,很少使用原生的new thread 繼承runnable的物件 來執行多執行緒任務,因為這種方式 第一,沒有用到執行緒池,不利於執行緒管理,第二,runnabl...

關於多執行緒

多執行緒技術 通過併發提高程式的整體效能。程序 應用程式,負責開闢一塊記憶體區域,用程式執行 每乙個程序都預設有乙個 主線程 執行緒 要執行的任務流 當有耗時操作時,可能需要在後台新建乙個子執行緒,來單獨處理這些耗時的操作,待操作完成之後,再更新ui介面。如果不放在其他執行緒執行,會 阻塞 住主線程...