教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Python就業(yè)班筆記整理(二)

更新時間:2018年07月27日09時57分 來源:傳智播客 瀏覽次數(shù):

Listen(backlog)數(shù)值代表的含義?
監(jiān)聽變主動為被動,backlog指定最多允許多少個客戶連接到服務(wù)器。它的值至少為1。收到連接請求后,這些請求需要排隊,如果隊列滿,就拒絕請求。請注意,最大限制是取決于操作系統(tǒng),Ubuntu上默認(rèn)是128
TCP服務(wù)端recv解堵塞的兩種方式?
1、收到客戶端發(fā)送的數(shù)據(jù)
2、客戶端關(guān)閉了套接字
可以通過判斷收到數(shù)據(jù)的長度來判斷客戶端是否下線,長度為0代表已下線。
什么是多任務(wù)?
簡單地說,就是操作系統(tǒng)可以同時運行多個任務(wù)。實現(xiàn)多任務(wù)有多種方式,線程、進(jìn)程協(xié)程
并行和并發(fā)的區(qū)別?
并發(fā):指的是任務(wù)數(shù)多余cpu核數(shù),通過操作系統(tǒng)的各種任務(wù)調(diào)度算法,實現(xiàn)用多個任務(wù)“一起”執(zhí)行(實際上總有一些任務(wù)不在執(zhí)行,因為切換任務(wù)的速度相當(dāng)快,看上去一起執(zhí)行而已)
并行:指的是任務(wù)數(shù)小于等于cpu核數(shù),即任務(wù)真的是一起執(zhí)行的
真的多任務(wù)叫并行,假的多任務(wù)叫并發(fā)。
什么是線程?
可以簡單理解為同一進(jìn)程中有多個計數(shù)器,每個線程的執(zhí)行時間不確定,而每個進(jìn)程的時間片相等,線程是操作系統(tǒng)調(diào)度執(zhí)行的最小單位
線程的創(chuàng)建步驟
Import threading
# 創(chuàng)建一個線程對象
t1 = threading.Thread(target=func_name, args=(num,), name=”子線程名字”)
# 創(chuàng)建一個線程并啟動
t1.start()
# 等待子線程執(zhí)行完畢之后再繼續(xù)向下執(zhí)行主線程
t1.join()
備注:主線程會等待子線程結(jié)束之后才會結(jié)束,主線程一死,子線程也會死。線程的調(diào)度是隨機的,并沒有先后順序。
枚舉函數(shù)enumerate的用法
enumerate()是python的內(nèi)置函數(shù),在字典上是枚舉、列舉的意思。用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。通過threading.enumerate()就可以獲取線程列表。
互斥鎖的運用
由于多線程之間共享全局變量就會導(dǎo)致出現(xiàn)資源競爭的問題,為了避免這種競爭出現(xiàn),利用互斥鎖可以實現(xiàn)線程同步。
# 創(chuàng)建鎖
Mutex = threading.Lock()
# 加鎖
Mutex.acquire()
# 釋放鎖
Mutex.release()
什么是死鎖?
在線程間共享多個資源的時候,如果兩個線程分別占有一部分資源并且同時等待對方的資源,就會造成死鎖,盡管死鎖很少發(fā)生,但一旦發(fā)生就會造成應(yīng)用的停止響應(yīng)。
什么是進(jìn)程?
程序是靜態(tài)的,當(dāng)程序運行起來就叫做進(jìn)程。是操作系統(tǒng)分配資源的基本單元。

作者:傳智播客python培訓(xùn)學(xué)院
首發(fā):http://python.itcast.cn/
0 分享到:
和我們在線交談!