Linux并发服务器之多线程服务器

一:服务器模型一般分为两种

1:循环服务器:服务器同一时刻只能响应一个客户端的请求

2:并发服务器:服务器在同一时刻可以响应多个客户端的请求

二:并发服务器的三中实现方式

1:多进程并发服务器

是指TCP连接后,每一个客户机的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理

2:多线程并发服务器

多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样的服务处理程序可以较快的创建。据统计,创建线程要比创建进程要快100~1000倍。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存,全局变量等信息。

是指TCP连接后,每一个客户机的请求并不由服务器直接处理,而是由服务器创建一个子线程来处理

3:多路复用I/O

I/O是为了解决线程/进程阻塞在哪个i/o调用中,常用select或者pool。

三:多线程服务器

1:在多进程的编制模型中,各进程拥有独立的地址空间,减少了出错的概率,然而,fork调用却存在一些开销大,通信机制困难的问题

2:使用多线程服务器的的优点是线程的开销小,切换容易。但是由于共享相同的内存区域,所以在对共享数据进行操作时,要注意同步关系,即线程运行要区分先后。其中,线程特定的数据虽然实现起来比较麻烦,但是它是将一个非线程安全函数转换成安全函数的常用方法

3:多线程可以解决多进程的问题,( 开销大,进程间通信困难(IPC机制) ),有时线程也称之为轻量级的进程,线程的创建可能比进程快10~100倍。通一个进程内的线所有线程共享相同的全局内存,这使得线程之间易于共享信息,但随之而来的是线程的安全问题。

4:在某些情况下,我们需要多个线程共享全局数据,在访问这些数据时,就需要用到同步锁机制。



















  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值