多线程服务程序编程心得

后台服务器程序一般都要求很高的稳定性和健壮性,编写高质量的服务器程序需要注意如下几个方面:

1、对于后台的多个并行工作线程最好不要用另一个线程来统一管理。大多数人认为专门用一个调度线程来调度各线程是一个比较好的方案。但是在实际应用中这种方法并不一定好,因为如果你的任务处理特别频繁而且需要将各线程不停地在挂起与激活之间切换,就会出现一些意想不到的问题,各线程的调度状态和实际的状态不符合。所以最好是由各线程自己负责自己的调度。如果没有任务了就Sleep一下,时间可自己设定也可以按实际情况动态确定。如果任务缓冲区中有任务就取一个任务来执行。这种方法即简单又不会出现问题。

2、如果各工作线程需要一定的内存缓冲,最好是在线程初始化时就一次性创建自己的缓冲区,每次都是反复利用,不用每来一个任务就去申请一块内存,执行完后再删除,这样运行很长一段时间后会留下很多内存碎片。

3、如果多个线程之间需要互斥地访问多个共享对象,每个线程对共享对象的申请最好是一次性申请到(一次性加锁),否则会出现一些死锁现象。

你可能感兴趣的:(多线程服务程序编程心得)