Pythonの高同時実行非同期サーバーコアライブラリforkcoreの使用方法
1 次のコードをファイルにコピーし、forkcore.py
という名前を付けます。import os
import threading
import select
インポートソケット
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 "現在のプロセスの PID は "+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 "メインプロセス開始、pid は "+str(pid)
for _ in range(0,child_process_num):
if pid==os.getpid():
if os.fork():
self.ds_thread()
#init function
def __init__(self,worker,port=3333):
s=ソケット.ソケット(ソケット.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 独自のコードを作成します
2> ワーカー関数を定義します。ワーカー関数には 2 つのパラメータが必要です。conn はクライアントが接続するソケットを表し、addr は (ip, port) のタプルです。
3> forkcore.ds_forecore(worker,port=5555) を直接使用するだけです。 port はリスニングポートを指定するために使用されます。
コードをコピー
def work(conn,addr): print "("+str(addr[0])+"からのメッセージ:"+str(addr[1] )+"): "+conn.recv(1024)[0:-1]
forkcore.ds_forkcore(worker,port=5555)
注: Linux 2.6 以降のカーネルが必要です

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

Scapy Crawlerを使用する場合、パイプラインの永続的なストレージファイルを書くことができない理由は?ディスカッションデータクローラーにScapy Crawlerを使用することを学ぶとき、あなたはしばしば...

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

Python Process Poolは、クライアントが立ち往生する原因となる同時TCP要求を処理します。ネットワークプログラミングにPythonを使用する場合、同時のTCP要求を効率的に処理することが重要です。 ...

python functools.partialオブジェクトのpython functools.partialを使用してPythonを使用する視聴方法を深く探索します。

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

白い領域を見つけるためにPythonで高解像度の画像を処理する方法は? 9000x7000ピクセルの高解像度画像の処理、2つの写真を正確に見つける方法...

データの変換と統計:大規模なデータセットの効率的な処理この記事では、製品情報を含むデータリストを別の含有しているものに変換する方法を詳細に紹介します...
