多线程服务程序编程心得

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值