多线程服务程序编程心得

原创 2006年06月02日 10:11:00

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

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

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++ 多线程TELNET服务程序

  • 2014-08-07 08:34
  • 10KB
  • 下载

Windows服务程序编程入门

author:xxq123321 Windows服务程序是在操作系统后台运行的一种程序,要开发该类程序,需要使用windows提供的service API,MSDN上有对该类api的详细描述,这里简单...

COM编程实例总结(Windows服务程序)

Com编程实例 6.4 Com编程实例 微软Windows Com/Dcom技术为编写分布式应用程序提供了实用框架。Visual C++.NET中的ATL技术和属性编程技术(A...

利用多线程处理问题心得----处理并发程序

当利用多线程处理程序时,共有资源就是各个线程抢占的对象,处理加锁问题总结几点: 现象: 多线程抢占临界资源,会导致程序阻塞,影响效率如图: 经验和原因: 1. 能不加锁的地方,就不加锁...
  • zhylei
  • zhylei
  • 2012-07-27 21:46
  • 1128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)