Python開發工程師面試題(二)

Python開發工程師面試題(二)

來自專欄技術部落聯盟83 人贊了文章

哈哈,上周五我寫完了《Python開發工程師面試題(一)》,反響居然不錯。話說前天有人通過私信問我啥時候寫《Python開發工程師面試題(二)》呢。這不,馬上奉上~

6.進程、線程的區別?

(1)定義的不同

進程是系統進行資源分配和調度的一個獨立單位。

線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。

(2)區別

一個程序至少有一個進程,一個進程至少有一個線程。

線程的劃分尺度小於進程(資源比進程少),使得多線程程序的並發性高。

進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。

線線程不能夠獨立執行,必須依存在進程中。

(3)優缺點

線程和進程在使用上各有優缺點:

線程執行開銷小,但不利於資源的管理和保護;而進程正相反。

7.函數的閉包

閉包就是函數式編程的重要語法結構,提高了代碼可重複實用性。使用特定或特殊的方式,將局部變數(內部函數)引入到全局環境中使用,這就是閉包操作。

8.Python里的拷貝

Copy淺拷貝,只拷貝父元素,deepcopy深拷貝,遞歸拷貝可變對象的所有元素

9.apache和nginx的區別

(1)nginx 相對 apache 的優點:

輕量級,同樣起web 服務,比apache 佔用更少的內存及資源

抗並發,nginx 處理請求是非同步非阻塞的,支持更多的並發連接,而apache 則是阻塞型的,在高並發下nginx 能保持低資源低消耗高性能

配置簡潔

高度模塊化的設計,編寫模塊相對簡單

社區活躍

(2)apache 相對nginx 的優點:

rewrite ,比nginx 的rewrite 強大;

模塊超多,基本想到的都可以找到;

少bug ,nginx 的bug 相對較多;

超穩定。

10.什麼是事務?

事務(Transaction)是並發控制的基本單位。所謂事務,它是一個操作序列,這些操作要麼都執行,要麼都不執行,它是一個不可分割的工作單位。例如,銀行轉帳工作:

從一個帳號扣款並使另一個帳號增款,這兩個操作要麼都執行,要麼都不執行。所以,應該把他們看成一個事務。事務是資料庫維護數據一致性的單位,在每個事務結束時,都能保持數據一致性。

事務四大特性:

原子性:事務中的全部操作在資料庫中是不可分割的,要麼全部完成,要麼均不執行;

一致性:幾個並行執行的事務,其執行結果必須與按某一順序串列執行的結果相一致;

隔離性:事務的執行不受其他事務的干擾,事務執行的中間結果對其他事務必須是透明的;

持久性:對於任意已提交事務,系統必須保證該事務對資料庫的改變不被丟失,即使資料庫出現故障。

明天我會寫Python工程師面試題(三),敬請期待呀~給你花花~


推薦閱讀:

操作工永遠是對的!錯的是管理!!
Leetcodes Solutions 21 Merge Two Sorted Lists
編程之道(英漢對照)
Leetcodes Solution 32 Longest Valid Parentheses
Leetcodes Solutions 7 Reverse Integer

TAG:編程 | Python開發 | Python |