自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)述進(jìn)程、線程與項(xiàng)目的關(guān)系

開發(fā) 項(xiàng)目管理
今天我們要簡(jiǎn)單談?wù)勥M(jìn)程、線程與項(xiàng)目的關(guān)系。這里我們用Visual Studio 2010來(lái)進(jìn)行舉例,希望對(duì)大家有所幫助。

  首先在Visual Studio2010新建了一個(gè)WinForm項(xiàng)目WinFormApp1,里面會(huì)默認(rèn)有個(gè)叫Form1的窗口。假設(shè),項(xiàng)目WinFormApp1的功能是為了查詢遠(yuǎn)端Ftp服務(wù)器的文檔目錄,然后把查到的結(jié)果顯示到Form1的界面上。通常的做法是在Form1.cs類中添加一個(gè)QueryFtpFiles()方法用于對(duì)遠(yuǎn)端的ftp服務(wù)器進(jìn)行讀操作,然后把讀到的內(nèi)容顯示到界面上就算完成了。

  在這個(gè)項(xiàng)目完成后,一般會(huì)先在本地或局域網(wǎng)內(nèi)的某個(gè)Ftp服務(wù)器上先做個(gè)測(cè)試,這時(shí)你會(huì)發(fā)現(xiàn)程序很***地運(yùn)行著。當(dāng)你興致沖沖地把代碼交給你領(lǐng)導(dǎo)的時(shí)候,你的上司拿了遠(yuǎn)在美國(guó)的ftp服務(wù)器來(lái)試運(yùn)行,點(diǎn)擊“查詢”按鈕執(zhí)行QueryFtpFiles()查詢操作的時(shí)候,悲劇發(fā)生了——頁(yè)面死掉了(沒(méi)有響應(yīng))。。。你是不是覺得很沒(méi)面子?有木有?

  這里有個(gè)問(wèn)題,就是在執(zhí)行QueryFtpFiles()方法時(shí),由于是對(duì)遠(yuǎn)端的ftp服務(wù)器進(jìn)行讀操作,本身IO操作就比較耗時(shí),再考慮到網(wǎng)絡(luò)延遲等因素,你的界面就不得不停下了等待讀操作的完成。如果在這個(gè)讀操作完成前,你急不可耐地點(diǎn)了下界面,就出現(xiàn)了“沒(méi)有響應(yīng)”的后果。

  其實(shí),我在運(yùn)行這個(gè)項(xiàng)目的時(shí)候,實(shí)際上是在運(yùn)行由這個(gè)項(xiàng)目自動(dòng)在Debug或Release目錄下生成的WinFormApp1.exe應(yīng)用程序,而WinFormApp1.exe對(duì)于我的Windows Server2003即操作系統(tǒng)來(lái)說(shuō),他就是一個(gè)進(jìn)程。

  操作系統(tǒng)書中講,傳統(tǒng)的進(jìn)程有兩個(gè)基本屬性:擁有資源的獨(dú)立單位和可獨(dú)立調(diào)度和分配的基本單位。由于在進(jìn)程的創(chuàng)建、撤銷和切換中,系統(tǒng)必須耗費(fèi)較大的時(shí)空開銷。引入線程后,傳統(tǒng)的進(jìn)程的兩個(gè)基本屬性分開,線程作為調(diào)度和分配的基本單位,進(jìn)程作為獨(dú)立分配資源的單位。也就是說(shuō),在完成一個(gè)復(fù)雜的功能時(shí),可以在一個(gè)進(jìn)程中建立多個(gè)線程,每個(gè)線程分別完成某一項(xiàng)簡(jiǎn)單功能,進(jìn)程通過(guò)調(diào)度和排列組合這些線程來(lái)實(shí)現(xiàn)這個(gè)復(fù)雜的功能。

  線程,其實(shí)就是一段代碼,一個(gè)方法或一連串方法,這段代碼或方法可以去完成某個(gè)功能,也可以什么都不用做,比如上面提到的QueryFtpFiles(),它其實(shí)就滿足作為線程的基本條件。

  再回到原來(lái)的“沒(méi)有響應(yīng)”的問(wèn)題上,在執(zhí)行WinFormApp1.exe這個(gè)進(jìn)程的時(shí)候,這個(gè)進(jìn)程會(huì)調(diào)用UI線程,其實(shí)也就是Form1.cs內(nèi)的代碼以及它調(diào)用的其他類的代碼,因?yàn)镼ueryFtpFiles()也在Form1.cs這個(gè)類中,所以它也算是UI線程的一部分。WinFormApp1.exe進(jìn)程執(zhí)行時(shí)會(huì)首先調(diào)用這個(gè)UI線程(若沒(méi)有定義其他線程,這時(shí)UI線程應(yīng)該也是這個(gè)進(jìn)程的唯一線程),這個(gè)UI線程在執(zhí)行QueryFtpFile()方法的過(guò)程中由于耗時(shí)很多以至于這個(gè)進(jìn)程其他什么什么操作都要停下來(lái)等待,包括你去點(diǎn)擊界面的操作。

  問(wèn)題的描述應(yīng)該就是這樣了,至于解決方法,可以在UI線程中再定義另外一個(gè)線程thread1用來(lái)執(zhí)行QueryFtpFile()方法就可以了。

原文鏈接:http://www.cnblogs.com/computer-lzy/archive/2011/07/19/2111002.html

【編輯推薦】

  1. 新手軟件項(xiàng)目經(jīng)理該如何入門
  2. 項(xiàng)目經(jīng)理的力量應(yīng)該從哪里來(lái)?
  3. 當(dāng)你從程序員變?yōu)轫?xiàng)目經(jīng)理
  4. 軟件測(cè)試項(xiàng)目為什么會(huì)失敗
  5. 項(xiàng)目管理之CVS與SVN日常使用總結(jié)
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-08-26 16:25:46

IPDHCP服務(wù)器

2023-12-13 09:56:13

?多進(jìn)程多線程協(xié)程

2009-09-16 08:43:51

linux進(jìn)程線程

2022-06-07 07:37:40

線程進(jìn)程開發(fā)

2014-12-11 16:40:31

Android|進(jìn)程線程

2022-02-07 11:55:00

linux進(jìn)程線程

2022-05-26 08:31:41

線程Java線程與進(jìn)程

2010-07-26 09:45:09

Perl多進(jìn)程

2009-08-17 09:30:28

.NET 4.0

2009-06-18 13:18:32

軟件測(cè)試需求分析

2012-05-04 09:49:34

進(jìn)程

2021-05-21 09:36:42

開發(fā)技能代碼

2017-03-17 14:44:04

關(guān)系型數(shù)據(jù)庫(kù)原理

2020-07-13 10:26:41

CIOIT項(xiàng)目技術(shù)

2009-06-22 16:34:30

框架架構(gòu)設(shè)計(jì)模式

2013-04-25 09:55:21

進(jìn)程線程

2023-03-05 16:12:41

Linux進(jìn)程線程

2012-06-20 14:07:28

多線程架構(gòu)單線程

2015-09-08 15:13:35

Android進(jìn)程與線程

2018-07-06 14:00:55

Linux進(jìn)程線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)