工做之餘會總結一些細小的知識點,但又不至於發一篇博客,之後將細小的知識點積累供本身備忘;python
主要分爲兩個模塊: python只是和Linux知識shell
一 、Python多線程
1.正則中group()、group(0)、group(1)、group(s)的區別?.spa
結論:group取索引是從1開始的,索引group()和group(0)是同樣的,group(1)能夠取到第一個括號的元素,groups()返回的是全部匹配對象的元組線程
2.你真的懂GIL嗎?對象
概念:Cpython解釋器在同一時刻只容許一個線程執行blog
問題:本地有兩個python文件:a.py中開啓5個線程,b.py中開啓3個線程,問:同一時刻有幾個進程,幾個線程??排序
首先明確下進程是系統進行資源分配和調度的一個獨立單位;線程是進程的一個實體,是CPU調度和分派的基本單位索引
兩個python文件相互獨立,確定同一時刻確定有兩個進程,兩個進程共開啓8個線程,可是每一個進程中同一時刻只容許一個線程執行,進程
全部a.py中開啓了5個線程,但只用一個在執行,,因此兩個文件同一時刻有兩個進程,兩個線程,其他的線程處於掛起狀態並不會打斷,
那麼python中的多線程真的一點用沒有嗎,分狀況看了,,若是多個線程全都是計算密集型的話python確實有點雞肋,但若是多個線程有IO操做的話,其中一個 線程處於IO操做時另外一個線程就能夠運行,因此在IO多線程操做中python線程還時有做用的
3.字典的排序(比較簡單,可是容易遺忘)
4. 字典的update()沒有返回值
兩個字典合併時可使用update()方法,可是注意update沒有返回值,代碼以下:
5. 巧用字符串split()的第二個參數
字符串的split()操做常常使用,可是它有三個參數,第二個參數step可理解爲切割幾個,看代碼:
6. python重寫父類的__init__方法
2、Linux操做
1. set指令最經常使用的兩個參數意義
set -e 若指令傳回值不等於0,則當即退出shell;
set -x 執行指令後,會先顯示該指令及所下的參數
未完待續~~~~