Python处理多个客户端连接---线程服务器

派生服务器的限制

一般来说,刚才描述的分支模型(派生服务器)在类unix平台上运行良好,但是会受一些隐藏的重要限制的影响:

1.性能

在某些机器上,启动一个新的进程,在时间和空间资源方面的消耗特别大。

2.可移植性

目前的os.fork调用在类似windows那样的非unix平台上不能运行。

3.复杂性

分支会带来管理和捕获僵尸进程的所有方法—清理存在时间比它们的父进程少的子进程

线程

解决所有这些难题的一个方案就是使用线程而不是进程。线程可以并行运行和共享全局内存。因为所有线程都运行在同一进程和内存空间中,所以它们自动共享它们之间传递的套接字,其核心类似于子进程继承套接字描述符的方式。然而,和进程不一样,线程的启动通常耗费不大,而且,如今可以运行在类unix机器和标准python下的windows上。此外,很多人认为线程是程序的简化形式—在退出时,子线程会静静的消失,不会留下在服务器上出没的僵尸进程。

__author__ = 'JianqingJiang'
# -*- coding: utf-8 -*-
import time,_thread as thread                    # use threading.Thread().start()
from socket import *
myHost = ''
myPort = 50007

sockobj = socket(AF_INET,SOCK_STREAM)            # make a TCP socket object
sockobj.bind((myHost,myPort))                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值