CPU使用

来源:互联网 发布:富士通扫描仪软件收费 编辑:程序博客网 时间:2024/06/17 05:14
在服务器中控制CPU的使用,可以通过对线程或进程的调度实现。进程或线程的频繁启动应该尽量避免,应使用线程池和进程池替代。
 
1、最少的锁定时间:服务器不能因为为单个用户服务而是其他用户长时间的等待。所以根本的方式就是减少对临界资源的锁定时间。使用不同的锁对于不同的资源,避免使用全局的锁。
 
2、选择合适的锁:使用锁必然增加系统的资源占用,我在Windows平台下大多使用临界区,教系统级的Event和Mutex可以少占用些资源,临界区应该是在等待的使用才会使用系统级的Event和Mutex。读写锁也是不错的东西,对于不长修改的东西可以采用。
 
3、在一些情况下可以不用锁:对于一些没有必要必须正确的情况下可以不用锁,错就错了。Windows平台上提供的Iterlocked的函数,也是不错的东西,此时的操作是线程安全的,并且不用使用锁。在Intel平台下依靠LOCK和CMPXCHG的汇编实现,较使用锁有更高的性能,同时没有死锁的问题。
 
4、锁的使用必然有死锁的问题,关于这些问题可以去参考操作系统的教程,都有经典的讲解。在C++中可以依靠对象的构造和析构来保证加锁和解锁的成对操作。
 
5、线程的工作方式:流水线和并发的多个处理者。线程之间的衔接多采用消息队列的方式,所谓生产者和消费者。对于线程不宜起的太多,太多的线程会消耗系统资源。太少系统的并发性又有影响。可以通过Window提供的功能对线程的使用情况进行监视。

原创粉丝点击