Prefork 多进程模型

转:

Prefork 就是预先创建好制定数量的进程来接受请求

t json
import struct
import socket


def handle_conn(conn, addr, handlers):
    print addr, "comes"
    while True:
        length_prefix = conn.recv(4)
        if not length_prefix:
            print addr, "bye"
            conn.close()
            break  # 关闭连接,继续处理下一个连接
        length, = struct.unpack("I", length_prefix)
        body = conn.recv(length)
        request = json.loads(body)
        in_ = request['in']
        params = request['params']
        print in_, params
        handler = handlers[in_]
        handler(conn, params)


def loop(sock, handlers):
    while True:
        conn, addr = sock.accept()
        handle_conn(conn, addr, handlers)


def ping(conn, params):
    send_result(conn, "pong", params)


def send_result(conn, out, result):
    response = json.dumps({"out": out, "result": result})
    length_prefix = struct.pack("I", len(response))
    conn.send(length_prefix)
    conn.sendall(response)


def prefork(n):
    for i in range(n):
        pid = os.fork()
        if pid < 0:  # fo...

https://juejin.im
掘金 — 一个帮助开发者成长的社区
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:写下这些文字,是为了更美好幸福的生活,婚姻家庭中没有胜利者,因为你认为的所有不幸痛苦都有孩子来买单。 (一)...
    又见依依阅读 693评论 5 8
  • 11拇指哥哥和拇指妹妹 婷妹,我正在看你写的美文呢,《婷美与莲美》,对吧。我觉得吧,你就像那一池清清水中亭亭玉立的...
    秭归秀才9条命儿阅读 651评论 0 0
  • 很久以前,当人们说爱情是两个人的事情,但是婚姻是两个家庭的事情时,年少的我很是不屑,那时候的我总认为;两个人有爱就...
    钟离凌羽阅读 574评论 0 0
  • 张清的日精进第33天 体验入 学员的第二次回流会,虽然很多同事能分享出来的深刻的东西不多,但是明显感觉到大家都是动...
    kiyoi2017阅读 165评论 0 1
  • 类对象(obj.getClass)描述的是类的代码信息,比如哪些属性、属性是什么类型、变量名是什么、哪些方法、方法...
    鱼仔_1625阅读 441评论 0 0