并發(fā)
在信豐等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),信豐網(wǎng)站建設(shè)費(fèi)用合理。同時(shí)做某些事,但是強(qiáng)調(diào),一段時(shí)間內(nèi)有事情要處理。
并發(fā)的解決
1:隊(duì)列、緩沖區(qū)
使用隊(duì)列解決資源使用的問(wèn)題,先進(jìn)先出,其實(shí)就是一個(gè)緩沖區(qū)。
2:爭(zhēng)搶
搶到資源就上鎖,排他性的鎖,其它只能等候。
3:預(yù)處理
提前加載用戶需要的數(shù)據(jù),緩存。
4:并行
通過(guò)多開(kāi)進(jìn)程、線程實(shí)現(xiàn)并行處理,購(gòu)買更多的服務(wù)器來(lái)解決問(wèn)題。(水平擴(kuò)展)
5:提速
提高性能,(垂直擴(kuò)展)
6:消息中間件
常見(jiàn)的消息中間件有RabbitMQ、ActiveMQ、RocketMQ、kafka
進(jìn)程
計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。
線程
線程有時(shí)也被稱為輕量級(jí)進(jìn)程,是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。
進(jìn)程和線程的關(guān)系
程序是源代碼編譯后的文件,而這些文件存放在磁盤(pán)上。當(dāng)程序被操作系統(tǒng)加載到內(nèi)存中,就是進(jìn)程,進(jìn)程中存放著指令和數(shù)據(jù)(資源),它也是線程的容器。
Linux進(jìn)程有父進(jìn)程、子進(jìn)程,windows的進(jìn)程是平等關(guān)系。
線程的狀態(tài)
就緒(Ready):線程能夠運(yùn)行,但在等待被調(diào)度??赡芫€程剛剛創(chuàng)建啟動(dòng),或者剛剛從阻塞中恢復(fù),或者被其他線程搶占
運(yùn)行(Running):線程正在運(yùn)行
阻塞(Blocked) :線程等待外部事件發(fā)生而無(wú)法運(yùn)行,如I/O操作
終止(Terminated):線程完成,或者退出,或被取消
Python中的線程開(kāi)發(fā)使用標(biāo)準(zhǔn)庫(kù)threading
Thread類
參數(shù):
target:線程調(diào)用的對(duì)象,就是目標(biāo)函數(shù)
name:為線程起一個(gè)名字
args:為目標(biāo)函數(shù)傳遞實(shí)參,元組
kwargs:為目標(biāo)函數(shù)關(guān)鍵字傳參,字典
線程的啟動(dòng)
需要調(diào)用start()方法。
線程的退出
Python沒(méi)有提供線程退出的方法,線程在下面情況時(shí)退出
1:線程函數(shù)內(nèi)語(yǔ)句執(zhí)行完畢
2:線程函數(shù)中拋出未處理的異常
線程的傳參
本質(zhì)上就是函數(shù)傳參。
threading的屬性和方法
方法:
current_thread():返回當(dāng)前線程對(duì)象
main_thread():返回主線程對(duì)象
active_count():當(dāng)前處于alive狀態(tài)的線程個(gè)數(shù)
enumerate():返回所有活著的線程的列表,不包括已經(jīng)終止的線程和未開(kāi)始的線程
get_ident():返回當(dāng)前線程的ID,非0整數(shù)
Thread實(shí)例的屬性和方法
name:只是一個(gè)名字,只是個(gè)標(biāo)識(shí),名稱可以重名。getName(),setName()獲取、設(shè)置這個(gè)名詞
ident:線程ID,它時(shí)非0整數(shù)。線程啟動(dòng)后才會(huì)有ID,否則為None.線程退出,此ID依舊可以訪問(wèn),此ID可以重復(fù)使用。
is_alive():返回線程是否或著
start():?jiǎn)?dòng)線程,每一個(gè)線程必須且只能執(zhí)行該方法一次
run():運(yùn)行線程函數(shù)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。