当前位置:  技术问答>linux和unix

为什么我的程序多线程要比单线程慢很多呢?

    来源: 互联网  发布时间:2015-07-07

    本文导语:  我的程序是一个服务器程序,工作线程狂占cpu,在一个工作线程速度还行,system基本不占cpu;在两个线程以上的情况下就会性能急剧下降,同时看top,system也占较多cpu.工作线程内有3-4个锁,还有几个全局变量。工作线程...

我的程序是一个服务器程序,工作线程狂占cpu,在一个工作线程速度还行,system基本不占cpu;在两个线程以上的情况下就会性能急剧下降,同时看top,system也占较多cpu.工作线程内有3-4个锁,还有几个全局变量。工作线程设为绑定的
pthread_attr_setscope(&mapThreadAttr, PTHREAD_SCOPE_SYSTEM); /* 设置为绑定模式 */和非绑定的都是这个现象。
程序运行在双cpu的p4 xeon上,打开了超线程,相当于4个cpu
在单cpu的p4上,打开了超线程,相当于2个cpu,也是如此

|
查查你这两个线程分别是做什么工作的
如果程序频繁在两个线程之间切换,肯定很耗cpu

|
在等待时用sleep也是不好的习惯,既然有condition这么好的东东,干吗要sleep呢?

|
UP

|
谁讲多线程一定比单线程快?
没有一个人这么讲
在ace的作者,参经就强调不要滥用多线程~~

    
 
 

您可能感兴趣的文章:

  • 请问在多线程得程序中,函数内的局部变量是否线程安全的
  • 请问在单进程,多线程程序里,线程间使用IPC的信号量来同步,能行吗?
  • 用什么方法可以查看在windows下jvm下运行当前java程序的线程数和线程名称?
  • 如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出
  • 请问对于多线程程序应该如何测试线程的切换开销呢
  • 各位,线程的run方法不允许抛出异常,那我的调用程序如何得知线程里发生了异常?
  • GDB下怎样调试多线程程序?
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 多线程网络通讯程序的稳定性问题
  • 请教多线程程序的内存占用问题
  • 多线程编程下关于gdb程序调试的一个疑问。
  • 存在线程的程序中调用exec将出现什么问题?
  • 如何编写支持超线程的Linux程序
  • 问个多线程网络服务程序的文件操作符的互斥问题
  • 各位大侠,想问问驱动程序中(linux或者windows平台)可否使用线程?
  • gdb也能调多线程程序吗?
  • 多线程socket程序莫名其妙接收到SIGALRM信号问题。
  • 在unix下如何编译多线程的程序?
  • 如何快速将一win32多线程(c++)程序移植到sco/aix下?
  • 请各位指点下嵌入式linux应用程序开发关于线程和进程的选用
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢? iis7站长之家
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3