freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多線程管理與線程通信操作系統(tǒng)課程設(shè)計(jì)論文-全文預(yù)覽

  

【正文】 。 (true)。 (new WindowAdapter(){ public void windowClosing(WindowEvent e){ ()。 (p,South)。 (new BorderLayout())。 ta = new TextArea()。 ()。 private TextField tf。 private DataInputStream dis。import .*。newDataOutputStream(())。name = ()。Eclipse SDK由Eclipse項(xiàng)目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。Remove(Object key)從哈希表中移除該鍵及其相應(yīng)的值。4.系統(tǒng)實(shí)現(xiàn)4.1 原理通過Socket建立連接,以ChatServer作為服務(wù)器,作為一個(gè)中間平臺(tái)進(jìn)行進(jìn)行交流,然后通過ChatClient作為客戶端,建立多個(gè)用戶,分別輸入用戶名登陸,輸入交流的信息。,稱為多線程. 線程和進(jìn)程的區(qū)別在于,子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個(gè)線程則共享數(shù)據(jù)空間,發(fā)揮利用,根據(jù)具體情況而定. 線程的運(yùn)行中需要使用計(jì)算機(jī)的內(nèi)存資源和CPU。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨(dú)立執(zhí)行。3.概要設(shè)計(jì)3.1 整體設(shè)計(jì)框架本程序主要分為兩部分,一部分為TestServer端(服務(wù)端),主要用于監(jiān)聽通信端口,接收客戶端連接請(qǐng)求,每當(dāng)有新用戶上線時(shí)會(huì)進(jìn)行如下處理:1.打開與該用戶相關(guān)聯(lián)的I/O流2.接收新用戶名3.將新用戶信息(包括用戶名和對(duì)應(yīng)的輸出流對(duì)象)加入到在線用戶列表中去4.啟動(dòng)一個(gè)新的線程,該線程負(fù)責(zé)監(jiān)聽并轉(zhuǎn)發(fā)此新用戶的發(fā)言信息另一部分為TestClient端(客戶端),主要是用于創(chuàng)建Socket對(duì)象,連接服務(wù)器的9999端口,建立連接后,通過創(chuàng)建新進(jìn)程進(jìn)行多個(gè)用戶之間的通信。建立連接時(shí)所需的尋址信息包括:遠(yuǎn)程計(jì)算機(jī)的機(jī)器名或IP地址;試圖連接的對(duì)方端口號(hào)。建立網(wǎng)絡(luò)連接之后,使用與Socket相關(guān)聯(lián)的I/O流一旦打開,其使用方式和先前其它I/O流的使用方式完全相同??蛻舳擞袃煞N,通常用來實(shí)現(xiàn)“客戶—服務(wù)器”連接和數(shù)據(jù)傳輸。可以形象的理解為,在一個(gè)java程序內(nèi)部虛擬了多臺(tái)計(jì)算機(jī),每臺(tái)計(jì)算機(jī)對(duì)應(yīng)一個(gè)線程,有自己的CPU,可以獲取所需要的代碼和數(shù)據(jù),因此能獨(dú)立執(zhí)行任務(wù),相互間還可以共用代碼和數(shù)據(jù)。主要分為兩部分,一部分為Seriver Socket端和Client Socket端。對(duì)于線程的優(yōu)先權(quán)層次的設(shè)置,CwinThread類沒有提供相應(yīng)的函數(shù),但是可以通過Win32 SDK函數(shù)GetPriorityClass()和SetPriorityClass()來實(shí)現(xiàn)。最后調(diào)用AfxBeginThread()函數(shù)的一個(gè)版本:CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ) 啟動(dòng)該用戶界面線程,其中第一個(gè)參數(shù)為指向定義的用戶界面線程類指針變量,第二個(gè)參數(shù)為線程的優(yōu)先級(jí),第三個(gè)參數(shù)為線程所對(duì)應(yīng)的堆棧大小,第四個(gè)參數(shù)為線程創(chuàng)建時(shí)的附加標(biāo)志,缺省為正常狀態(tài),如為CREATE_SUSPENDED則線程啟動(dòng)后為掛起狀態(tài)。工作線程用來執(zhí)行程序的后臺(tái)處理任務(wù),比如計(jì)算、調(diào)度、對(duì)串口的讀寫操作等,它和用戶界面線程的區(qū)別是它不用從CWinThread類派生來創(chuàng)建,對(duì)它來說最重要的是如何實(shí)現(xiàn)工作線程任務(wù)的運(yùn)行控制函數(shù)。操作系統(tǒng)給每個(gè)線程分配不同的CPU時(shí)間片,在某一個(gè)時(shí)刻,CPU只執(zhí)行一個(gè)時(shí)間片內(nèi)的線程,多個(gè)時(shí)間片中的相應(yīng)線程在CPU內(nèi)輪流執(zhí)行,由于每個(gè)時(shí)間片時(shí)間很短,所以對(duì)用戶來說,仿佛各個(gè)線程在計(jì)算機(jī)中是并行處理的。單獨(dú)一個(gè)執(zhí)行程序運(yùn)行時(shí),缺省地包含的一個(gè)主線程,主線程以函數(shù)地址的形式出現(xiàn),提供程序的啟動(dòng)點(diǎn),如main()或WinMain()函數(shù)等。客戶通過客戶端建立用戶,進(jìn)行信息交流。本次課程通過實(shí)現(xiàn)兩個(gè)端口,一個(gè)服務(wù)端口,通過多線程為客戶端提供了一個(gè)交流的平臺(tái)。線程的基本思想很簡(jiǎn)單,它是一個(gè)獨(dú)立的執(zhí)行流,是進(jìn)程內(nèi)部的一個(gè)獨(dú)立的執(zhí)行單元,相當(dāng)于一個(gè)子程序,它對(duì)應(yīng)于Visual C++中的CwinThread類對(duì)象?! ∫粋€(gè)進(jìn)程中的所有線程都在該進(jìn)程的虛擬地址空間中,使用該進(jìn)程的全局變量和系統(tǒng)資源。用戶界面線程通常用來處理用戶的輸入并響應(yīng)各種事件和消息,其實(shí),應(yīng)用程序的主執(zhí)行線程CWinAPP對(duì)象就是一個(gè)用戶界面線程,當(dāng)應(yīng)用程序啟動(dòng)時(shí)自動(dòng)創(chuàng)建和啟動(dòng),同樣它的終止也意味著該程序的結(jié)束,進(jìn)程終止。第二步是根據(jù)需要重載該派生類的一些成員函數(shù)如:ExitInstance()、InitInstance()、OnIdle()、PreTranslateMessage()等函數(shù)。至于優(yōu)先級(jí)設(shè)置所需的常數(shù),自己參考MSDN就可以了,要注意的是要想設(shè)置線程的優(yōu)先級(jí),這個(gè)線程在創(chuàng)建時(shí)必須具有THREAD_SET_INFORMATION訪問權(quán)限。 ?。ㄋ模┙Y(jié)束線程  終止線程有三種途徑,線程可以在自身內(nèi)部調(diào)用AfxEndThread()來終止自身的運(yùn)行;可以在線程的外部調(diào)用BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode )來強(qiáng)行終止一個(gè)線程的運(yùn)行,然后調(diào)用CloseHandle()函數(shù)釋放線程所占用的堆棧;第三種方法是改變?nèi)肿兞?,使線程的執(zhí)行函數(shù)返回,則該線程終止關(guān)鍵詞:多線程 通信 服務(wù)端口 客戶端目 錄
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1