無(wú)標(biāo)題文章

1. socketservers

1) server = socketserver.TCPserver((HOST,PORT),MyTCPHandler) # 實(shí)例化一個(gè) server  
            socketserver.TheadingTCPserver()                 # 多線程  
            socketserver.ForkingTCPserver()               # 多進(jìn)程  
2) server.handle_request() # 僅處理一個(gè)請(qǐng)求
   server.serve_forever()  # 處理多個(gè)請(qǐng)求
3) server_close() 關(guān)系 socketserver

2. paramiko 模塊

import paramiko
ssh = paramiko.SSHClient()

3. 進(jìn)程、線程

方法
start()         # 線程準(zhǔn)備就緒御板,等待CPU調(diào)度
setName()       # 為線程設(shè)置名稱
getName()       # 獲取線程名稱
setDaemon(True) # 設(shè)置為守護(hù)線程
join()          # 逐個(gè)執(zhí)行每個(gè)線程锥忿,執(zhí)行完畢后繼續(xù)往下執(zhí)行
run()           # 線程被cpu調(diào)度后自動(dòng)執(zhí)行線程對(duì)象的run方法,如果想自定義線程類怠肋,直接重寫run方法就行了

線程進(jìn)程的區(qū)別:
1.同一個(gè)進(jìn)程中的線程共享同一內(nèi)存空間敬鬓,但是進(jìn)程之間是獨(dú)立的。
2.同一個(gè)進(jìn)程中的所有線程的數(shù)據(jù)是共享的(進(jìn)程通訊)笙各,進(jìn)程之間的數(shù)據(jù)是獨(dú)立的钉答。
3.對(duì)主線程的修改可能會(huì)影響其他線程的行為,但是父進(jìn)程的修改(除了刪除以外)不會(huì)影響其他子進(jìn)程杈抢。
4.線程是一個(gè)上下文的執(zhí)行指令数尿,而進(jìn)程則是與運(yùn)算相關(guān)的一簇資源。
5.同一個(gè)進(jìn)程的線程之間可以直接通信惶楼,但是進(jìn)程之間的交流需要借助中間代理來實(shí)現(xiàn)右蹦。
6.創(chuàng)建新的線程很容易,但是創(chuàng)建新的進(jìn)程需要對(duì)父進(jìn)程做一次復(fù)制歼捐。
7.一個(gè)線程可以操作同一進(jìn)程的其他線程何陆,但是進(jìn)程只能操作其子進(jìn)程。
8.線程啟動(dòng)速度快豹储,進(jìn)程啟動(dòng)速度慢(但是兩者運(yùn)行速度沒有可比性)贷盲。

python的線程中沒有優(yōu)先級(jí)、線程組剥扣,也不能被停止巩剖、暫停慨灭、恢復(fù)、中斷球及,線程只能隨著線程中的代碼執(zhí)行完畢而被銷毀氧骤。

守護(hù)線程
t.setDaemon(True) # 把子線程變成守護(hù)線程
t.start() # 開始線程

擴(kuò)展閱讀:
搞定python多線程和多進(jìn)程
由淺入深:Python多線程編程詳解

4.GIL

5.互斥鎖

    lock = threading.lock() # 創(chuàng)建鎖
    lock.acquire()          # 請(qǐng)求鎖
    lock.release()          # 釋放鎖

6.遞歸鎖

    lock = threading.Rlock()

7.信號(hào)量

    semaphore = threading.BoundedSemaphore(5)   #最多同時(shí)允許5個(gè)線程同時(shí)運(yùn)行

8.Events 事件

    event = threading.Event()
    event.clear         # 將flag設(shè)置為“False”
    event.set           # 將flag設(shè)置為“True”
    event.is_set        # 判斷是否設(shè)置了flag,用來初始化狀態(tài)
    event.wait          # 會(huì)一直監(jiān)聽flag,如果沒有檢測(cè)到flag就一直處于阻塞狀態(tài)

9.隊(duì)列

    import queue
    q = queue.Queue(maxsize = 3) # 實(shí)例化一個(gè)隊(duì)列(先入先出),最多放3個(gè)元素
    q = queue.LifoQueue()        # 實(shí)例化一個(gè)隊(duì)列(后入先出)
    q = queue.PriorityQueue()    # 實(shí)例化一個(gè)隊(duì)列(可設(shè)置優(yōu)先級(jí))
    q.put()                      # 放入隊(duì)列
    q.qsize()                    # 隊(duì)列大小
    q.get()                      # 從隊(duì)列取數(shù)據(jù)
    q.get_nowait()               # 如果取不到會(huì)拋出一個(gè)異常

10.定時(shí)器

 定時(shí) n 秒后執(zhí)行操作
    from threading import Timer
    def hello():
        print("hello, world")

    t = Timer(1, hello)
    t.start()                   # after 1 seconds, "hello, world" will be printed

11.多線程的使用場(chǎng)景:

  • IO操作不占用CPU
  • 計(jì)算占用CPU
  • python 多線程不適合 CPU 密集操作型的任務(wù)吃引,適合IO操作密集型的任務(wù)

12.多進(jìn)程語(yǔ)法:

    from multiprocessing import Process
    def f():
        print("123")
    p = Process(target=f, args=('bob',))

13.進(jìn)程之間數(shù)據(jù)交換

進(jìn)程之間數(shù)據(jù)是不共享的筹陵,所以不會(huì)出現(xiàn)多線程GIL帶來的問題。多進(jìn)程之間的通信通過Queue()或Pipe()來實(shí)現(xiàn)  
    Queue()     # 使用方法跟threading里的queue差不多
    pips()      # Pipe的本質(zhì)是進(jìn)程之間的數(shù)據(jù)傳遞镊尺,而不是數(shù)據(jù)共享朦佩,這和socket有點(diǎn)像
    manager()   # 通過Manager可實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)的共享。
                  Manager()返回的manager對(duì)象會(huì)通過一個(gè)服務(wù)進(jìn)程庐氮,來使其他進(jìn)程通過代理的方式操作python對(duì)象语稠。
                  manager對(duì)象支持 list, dict, Namespace, Lock, RLock, Semaphore, BoundedSemaphore, Condition,
                                 Event, Barrier, Queue, Value ,Array.
  • 示例:
    from multiprocessing import Process, Manager
        with Manager() as manager:
            d = manager.dict()
            l = manager.list(range(5))

14.進(jìn)程鎖

lock = lock()
    進(jìn)程鎖存在的意義:共享設(shè)備,例如標(biāo)準(zhǔn)輸出設(shè)備等

15.進(jìn)程池

    apply()         # 同步執(zhí)行(串行)
    apply_async()   # 異步執(zhí)行(并行)
    terminate()     # 立刻關(guān)閉進(jìn)程池
    join()          # 主進(jìn)程等待所有子進(jìn)程執(zhí)行完畢弄砍。必須在close或terminate()之后仙畦。
    close()         # 等待所有進(jìn)程結(jié)束后,才關(guān)閉進(jìn)程池音婶。

  windows 啟動(dòng)多進(jìn)程:
  必須加入: if __name__ == '__main__':

  # callback  [回調(diào)函數(shù)]執(zhí)行后再調(diào)用(通過主進(jìn)程調(diào)用)
  注:
    poll.close()
    poll.join()    # 必須先close 再 join

16.協(xié)程

    安裝 Creenlet    # Creenlet 手動(dòng)切換  gevent 啟動(dòng)切換(對(duì) gevent 的封裝)
    import Greenlet
    gr1 = greenlet(test1)   # 啟動(dòng)一個(gè)協(xié)程
    gr2 = greenlet(test2)
    gr1.switch()

17.gevnet 爬網(wǎng)頁(yè)

    import urllib

    # urllib 默認(rèn) 不知道 gevent 需要monkey.path_all()
     monkey.path_all() # 把但錢程序的所有的IO操作做標(biāo)記

18.事件驅(qū)動(dòng)

19.多路IO復(fù)用/異步IO復(fù)用

    select.select(inputs,outputs,)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慨畸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子衣式,更是在濱河造成了極大的恐慌寸士,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碴卧,死亡現(xiàn)場(chǎng)離奇詭異弱卡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)住册,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門婶博,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人界弧,你說我怎么就攤上這事凡蜻。” “怎么了垢箕?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵划栓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我条获,道長(zhǎng)忠荞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮委煤,結(jié)果婚禮上堂油,老公的妹妹穿的比我還像新娘。我一直安慰自己碧绞,他們只是感情好府框,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讥邻,像睡著了一般迫靖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兴使,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天系宜,我揣著相機(jī)與錄音,去河邊找鬼发魄。 笑死盹牧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的励幼。 我是一名探鬼主播汰寓,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赏淌!你這毒婦竟也來了踩寇?” 一聲冷哼從身側(cè)響起啄清,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤六水,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后辣卒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掷贾,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年荣茫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了想帅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啡莉,死狀恐怖港准,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咧欣,我是刑警寧澤浅缸,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站魄咕,受9級(jí)特大地震影響衩椒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一毛萌、第九天 我趴在偏房一處隱蔽的房頂上張望苟弛。 院中可真熱鬧,春花似錦阁将、人聲如沸膏秫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荔睹。三九已至,卻和暖如春言蛇,著一層夾襖步出監(jiān)牢的瞬間僻他,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工腊尚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吨拗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓婿斥,卻偏偏與公主長(zhǎng)得像劝篷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子民宿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • # 1. socketservers 1) server = socketserver.TCPserver((HO...
    yanqing001閱讀 174評(píng)論 0 0
  • JAVA面試題 1娇妓、作用域public,private,protected,以及不寫時(shí)的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,154評(píng)論 1 0
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,715評(píng)論 0 9
  • 1.要做一個(gè)盡可能流暢的ListView活鹰,你平時(shí)在工作中如何進(jìn)行優(yōu)化的哈恰? ①Item布局,層級(jí)越少越好志群,使用hie...
    fozero閱讀 728評(píng)論 0 0
  • 現(xiàn)代操作系統(tǒng)的功能 提供抽象提供標(biāo)準(zhǔn)接口調(diào)度資源使用消費(fèi)資源 死鎖的必要條件 互斥:同一時(shí)間只有一個(gè)線程可以占有鎖...
    SetsunaChiya閱讀 203評(píng)論 0 0