併發:在同一個時間段交替執行多個任務
並行:在同一個時間點同時執行多個任務
串行:同時執行的多個任務按順序執行(換句話說就是一個任務執行完後才能執行下一個任務)mysql
#mysql limit用法: select * from table limit m,n;
m表示第m+1條數據起(由於索引是從零開始的)
n表示n行記錄
eg:
當指定了位置偏移量時,從第3條起取4條時,能夠這樣寫*/
由於索引是從0開始計數的,因此第3條對應的索引就是2*/
SELECT * FROM YourTableName LIMIT 2,4;算法
Phthon常見的算法:
選擇排序:
先選出列表中最小數n,放到一個空列表起始位置,而後再到剩餘元素中查找最小的數放到n的後面,以此類推。
快速排序:
先選出列表中起始位置的數n,而後將列表中比n小的數放前面,比n大的數放後面,以遞歸的形式返回。
二分查找:
首先定義列表的第一個元素位置start=0和結束位置len(list)-1,當初始位置start小於或等於結束位置end時,
獲取中間元素的位置mid=(start + end )// 2,而後用中間位置的mid元素與須要查找的num元素進行比較,
若是num>list[mid],則說明num在mid後面,那麼起始位置向後移一位,即:start = mid +1,
若是num<list[mid],則說明num在mid前面,那麼結束位置向前移一位,即:end = mid - 1,
若是num == list[mid],則說明num在列表list中的位置爲mid,以此循環。
不然列表list中不存在numsql
Python垃圾回收機制:
一、引用計數:就是變量值被變量名關聯的次數。n='xm' n=m,n和m就是變量名,‘xm’就是變量值
缺點: 循環引用(交叉引用):當一個對象與另外一個相互引用時,就會致使變量值的引用計算沒法爲零
二、標記-清除:當有效的內存空間被耗盡時,就會中止整個程序,而後進行標記和清除兩項工做
內存中有兩塊區域:一個是堆區(變量值存放區域),一個是棧區(變量名存在區域),內存管理回收的則是堆區內容。
標記:遍歷全部棧區的內容,而後將直接或者間接訪問的對象標記爲存活對象。
清除:遍歷全部堆區的內容,將沒有標記的對象所有清除。
三、分代回收:採用空間換時間的策略,依然是使用引用計數做爲回收依據
思想:在屢次掃描的狀況下,都沒有被回收的變量,gc回收就會認爲該變量是經常使用變量,就會下降對其的掃描頻率。併發
def foo(s): n = int(s) assert n != 0,'n is zero' #若是n!=0爲False就拋出後面的字符串 return 10 / n print foo('0')