1.說說python高併發解決方案?
答案:
1.使用多程序,避免使用python多執行緒。
2.使用協程、併發框架(需要提到gevent、tornado(只適用於web))。
3.使用其他語言,如c語言,來編寫多執行緒併發的程式,使用python的膠水特性。
2.談談python的迭代器、生成器、裝飾器
答案:
可迭代物件:
簡單的理解就是可以使用for遍歷的物件,實現了迭代器協議,可以使用iterable()來檢視是否可以迭代
迭代器:
通常物件內部實現了iter()、next()方法,就是迭代器
生成器:
只是儲存一種迭代方法,呼叫時才生成資料,極大的減小了記憶體的占用,還有一種是生成器函式,內部使用了yield關鍵字,來支援迭代器協議
裝飾器:
@符號表示裝飾器
實現:
在閉包的基礎上,把乙個函式的引用當做引數傳遞給乙個閉包,在閉包內部執行了這個函式,和閉包本身的**功能,實現了在不改變函式**增加新功能,只能在這個函式執行之前,和執行之後增加功能
多個裝飾器裝飾同乙個函式:
順序為從下往上裝飾
帶引數的裝飾器:
實際上是在閉包的外層再加乙個閉包,拿外層閉包的返回值當做裝飾器
**上用於
登入認證,或者許可權驗證,還常用於log日誌
執行緒安全
答案:
執行緒安全就是多執行緒執行時避免產生衝突。
如多個執行緒同時操作乙個變數,資源競爭問題,使用鎖機制,可以解決競爭問題,但是可能會產生死鎖,造成程式停止響應,兩個執行緒擁有部分資源互相等待對方釋放這一部分資源
queue佇列也實現了鎖機制,先進先出,可以避免競爭問題
解決辦法增加判讀時間、避免死鎖的產生
sql注入:
給sql語句注入其他內容
防止:
1.避免sql語句暴露
2.接收的資料進行轉換
未完待續
python後端麵試題答案 僅參考
數學 資料庫問答題 共4題,合計24分 1.答 不包含6或8或9的總數 1位數 0 9 10 3 7個 2位數 10 99 90 6 7 48個 3位數 100 999 900 6 7 7 606 4位數 1000 9999 9000 6 7 7 7 6942 包含6或8或9的數字總數為 10000...
python面試題 web後端
socket 簡稱 套接字 是程序間通訊乙個工具,它能實現把資料從一方傳輸到另外一方,完成不同電腦上程序之間的通訊,它好比資料的搬運工。udp是乙個簡單的面向資料報的運輸層協議.缺點 使用場景 傳送廣播訊息 tcp 英文全拼 transmission control protocol 簡稱傳輸控制協...
前端面試題
sprites是什麼和為什麼要使用他們?css 精靈 把一堆小的整合到一張大的上,減輕伺服器對的請求數量 有可能替代sprites的方法是什麼?svg圖示,字型圖示,字元編碼等等。1 在div排版的時候,假設現在是100px的寬,我在盒子左側用padding left留個10px的白,div就撐開了...