欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python高并發(fā)異步服務(wù)器核心庫(kù)forkcore使用方法

 更新時(shí)間:2013年11月26日 14:30:18   作者:  
這篇文章主要介紹了python高并發(fā)異步服務(wù)器核心庫(kù)forkcore的使用方法,大家參考使用吧

1 拷貝下面的代碼到一個(gè)文件,并命名為forkcore.py

復(fù)制代碼 代碼如下:

import os
import threading
import select
import socket

class ds_forkcore(object):

    #async IO(epoll)
    def ds_epoll(self):
        epoll=select.epoll()
        epoll.register(self.s.fileno(),select.EPOLLIN|select.EPOLLET)
        while 1:
            epoll_list=epoll.poll()
            for fd,_events in epoll_list:
                if fd==self.s.fileno():
                    conn,addr=self.s.accept()
                    print "Current process's pid is "+str(os.getpid())
                    self.worker(conn,addr)

    #multi_thread
    def ds_thread(self,thread_num=100):
        for _ in range(0,thread_num):
            t=threading.Thread(target=self.ds_epoll)
            t.setDaemon(1)
            t.start()
            t.join()

    #multi_process
    def ds_process(self,child_process_num=8):
        pid=os.getpid()
        print "Main process start, pid is "+str(pid)
        for _ in range(0,child_process_num):
            if pid==os.getpid():
                if os.fork():
                    pass
                else:
                    print "Worker process start, pid is "+str(os.getpid())
                    self.ds_thread()

    #init function
    def __init__(self,worker,port=3333):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        s.bind(("",port))
        s.listen(50000)
        self.s=s
        self.worker=worker
        self.ds_process()

2 編寫(xiě)自己的代碼

1> 導(dǎo)入forkcore庫(kù)。

2> 定義worker函數(shù),worker函數(shù)需要兩個(gè)參數(shù),conn代表客戶(hù)端連接的socket,addr是(ip,port)的元組。

3> 直接使用forkcore.ds_forecore(worker,port=5555)即可,port用于指定監(jiān)聽(tīng)端口。

復(fù)制代碼 代碼如下:

import forkcore

if __name__=="__main__":
    def worker(conn,addr):
        print "Message from ("+str(addr[0])+":"+str(addr[1])+"): "+conn.recv(1024)[0:-1]

    forkcore.ds_forkcore(worker,port=5555)

注:需要linux 2.6以上的內(nèi)核

相關(guān)文章

  • pygame學(xué)習(xí)筆記(4):聲音控制

    pygame學(xué)習(xí)筆記(4):聲音控制

    這篇文章主要介紹了pygame學(xué)習(xí)筆記(4):聲音控制,本文講解了pygame.mixer啟動(dòng)與初始化、播放聲音片段wav文件、播放mp3、wma、ogg音樂(lè)文件、控制音量、制作mp3播放器中遇到的問(wèn)題等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)圖片背景移除工具

    Python實(shí)現(xiàn)圖片背景移除工具

    這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片背景移除工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-02-02
  • 一篇文章帶你入門(mén)Python正則表達(dá)式

    一篇文章帶你入門(mén)Python正則表達(dá)式

    這篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)教程,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2021-10-10
  • Python實(shí)現(xiàn)的棧(Stack)

    Python實(shí)現(xiàn)的棧(Stack)

    棧作為一種數(shù)據(jù)結(jié)構(gòu),是一種只能在一端進(jìn)行插入和刪除操作。這篇文章給大家介紹了Python實(shí)現(xiàn)的棧(Stack)的相關(guān)資料,感興趣的朋友一起看看吧
    2018-01-01
  • uwsgi啟動(dòng)django項(xiàng)目的實(shí)現(xiàn)步驟

    uwsgi啟動(dòng)django項(xiàng)目的實(shí)現(xiàn)步驟

    本文主要介紹了uwsgi啟動(dòng)django項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 為什么選擇python編程語(yǔ)言入門(mén)黑客攻防 給你幾個(gè)理由!

    為什么選擇python編程語(yǔ)言入門(mén)黑客攻防 給你幾個(gè)理由!

    為什么選擇python編程語(yǔ)言入門(mén)黑客攻防,小編今天給你幾個(gè)理由!Python語(yǔ)言的優(yōu)點(diǎn)、Python黑客攻擊優(yōu)點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略

    淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略

    本文主要介紹了Tensorflow2對(duì)GPU內(nèi)存的分配策略,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python定義函數(shù)如何判斷年份是否為閏年

    python定義函數(shù)如何判斷年份是否為閏年

    這篇文章主要介紹了python定義函數(shù)如何判斷年份是否為閏年,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息示例

    Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息示例

    這篇文章主要介紹了Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息,結(jié)合實(shí)例形式分析了Python中matplotlib模塊進(jìn)行坐標(biāo)系圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程

    python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程

    ansible是基于 paramiko 開(kāi)發(fā)的,并且基于模塊化工作,本身沒(méi)有批量部署的能力,接下來(lái)通過(guò)本文給大家分享python ansible自動(dòng)化運(yùn)維工具的特點(diǎn)及執(zhí)行流程,感興趣的朋友跟隨小編一起看看吧
    2021-06-06

最新評(píng)論