在所有編程語(yǔ)言中,函數(shù)的作用都是相似的
秀峰網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),秀峰網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為秀峰數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的秀峰做網(wǎng)站的公司定做!
在開發(fā)程序的時(shí)候,某一段代碼需要執(zhí)行很多次,為了提高編寫的效率以及代碼的復(fù)用,需要把這一段代碼封裝成一個(gè)模塊,這就是函數(shù)
C10k是一個(gè)在1999年被提出來(lái)的技術(shù)挑戰(zhàn),如何在一顆1GHz CPU,2G內(nèi)存,1gbps網(wǎng)絡(luò)環(huán)境下,讓單臺(tái)服務(wù)器同時(shí)為1萬(wàn)個(gè)客戶端提供FTP服務(wù)
阻塞式I/O(使用最多)、非阻塞式I/O、I/O復(fù)用、信號(hào)驅(qū)動(dòng)式I/O(幾乎不使用)、異步I/O(POSIX的aio_系列函數(shù))
select、poll、epoll都是IO多路復(fù)用的機(jī)制。I/O多路復(fù)用就是通過(guò)一種機(jī)制,一個(gè)進(jìn)程可以監(jiān)聽多個(gè)描述符,一旦,某個(gè)描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進(jìn)行相應(yīng)的讀寫操作。但select、poll、epoll本質(zhì)上都是同步I/O,因?yàn)樗麄兌夹枰谧x寫時(shí)間就緒后負(fù)責(zé)進(jìn)行讀寫,也就是說(shuō)讀寫過(guò)程是阻塞的,而異步I/O無(wú)需自己負(fù)責(zé)進(jìn)行讀寫,異步I/O的實(shí)現(xiàn)會(huì)負(fù)責(zé)把數(shù)據(jù)從內(nèi)核拷貝到用戶空間
(1)select
select函數(shù)監(jiān)視的文件描述符分3類,分別是writefds、readfds、exceptfds。調(diào)用select函數(shù)會(huì)阻塞,直到有描述符就緒(有數(shù)據(jù)可讀、可寫或者有except),或者超時(shí)函數(shù)返回。當(dāng)select函數(shù)返回后可以通過(guò)遍歷fdset來(lái)找到就緒的描述符。
select目前幾乎在所有的平臺(tái)上支持,其良好的跨平臺(tái)支持也是它的一個(gè)優(yōu)點(diǎn)。select的一個(gè)缺點(diǎn)在于單個(gè)進(jìn)程能夠監(jiān)視的文件描述符的數(shù)量存在最大限制,在Linux上一般為1024,可以通過(guò)修改宏定義甚至重新編譯內(nèi)核的方式提升這一限制,但是這樣也會(huì)降低效率。
(2)poll
不同于select使用三個(gè)位圖來(lái)表示三個(gè)fdset的方式,poll使用一個(gè)pollfd的指針實(shí)現(xiàn)。
pollfd結(jié)構(gòu)包含了要監(jiān)視的event和發(fā)生的event,不再使用select"參數(shù)-值"傳遞的方式。同時(shí)pollfd并沒(méi)有最大數(shù)量限制(但是數(shù)量過(guò)大后性能也會(huì)下降)。和select函數(shù)一樣,poll返回后,需要輪詢pollfd來(lái)獲取就緒的描述符。
從上面看,select和poll都需要在返回后通過(guò)遍歷文件描述符來(lái)獲取已經(jīng)就緒的socket。事實(shí)上同時(shí)連接的大量客戶端在同一時(shí)刻可能只有很少的處于就緒的狀態(tài),因此隨著監(jiān)視的描述符數(shù)量的增長(zhǎng),其效率也會(huì)線性下降
(3)epoll
epoll是在2.6內(nèi)核中提出的,是之前的select和poll的增強(qiáng)版本。相對(duì)于select和poll來(lái)說(shuō),epoll更加領(lǐng)靈活,沒(méi)有描述符限制。epoll使用一個(gè)文件描述符管理多個(gè)描述符,將用戶關(guān)系的文件描述符的事件存放到內(nèi)核的一個(gè)事件表中,這樣在用戶空間和內(nèi)核空間的copy只需一次。
python中函數(shù)的作用不包括增加代碼量。根據(jù)查詢相關(guān)資料信息,python中函數(shù)的作用有復(fù)用代碼、提高效率、減少代碼量等相關(guān)作用。
就是說(shuō)一段代碼/函數(shù)你能用多次,就像南孚一樣,用在不同的場(chǎng)合中
網(wǎng)站標(biāo)題:python函數(shù)復(fù)用,python 復(fù)制函數(shù)
URL分享:http://www.ekvhdxd.cn/article10/phcogo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站維護(hù)、虛擬主機(jī)、小程序開發(fā)、網(wǎng)站制作、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)