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:在某些情况下,我们需要多个线程共享全局数据,在访问这些数据时,就需要用到同步锁机制。



















猜你喜欢

转载自blog.csdn.net/leikun153/article/details/79990513