跪求C#社区大神讲解 ”同步线程性能问题“ 的疑惑!!!

tianliang1 2013-03-09 12:16:28
最近在研究多线程的一些知识,看到同步线程时,出现的性能问题很是疑惑,问题是这样的。

同步,多个线程访问共享数据时,需要同步控制,否则可能出现错误。

同步可能会有性能问题,如加锁解锁时间消耗、没有并行速度快等这些都很容易理解。但很多资料上都说

线程被阻塞时,可能会造成线程池创建更多的线程?这是为什么?

在《Clr Via C#》一书中讲到,是为了CPU “饱和”,这是什么意思?
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
只在此山中 2013-03-12
  • 打赏
  • 举报
回复
CPU“饱和”是cpu的性能饱和? 指cpu发挥到最好的水平,运行队列上的数目高,比如监控CPU时使用率100%.
qsw1214 2013-03-11
  • 打赏
  • 举报
回复
内存不足,CPU过高的现状
tianliang1 2013-03-11
  • 打赏
  • 举报
回复
引用 2 楼 zdbb 的回复:
线程被阻塞时,这个线程就没有到执行结束和释放,其他使用线程池的要求就可能导致线程池创建新线程来给请求,这样就增加了线程数量。 如果线程不阻塞,返回给线程池重用,当然线程池内的线程数没有增加。
呃,您的意思是说,线程A被阻塞的时候,线程A始终被占着,不会被线程池利用? 原来是自己一直理解错了。我以为是当线程空闲(阻塞时也是空闲)时就可能会被线程池再度利用于其他任务,当那个阻塞解除时,CLR再到线程池中任意获取一个线程继续任务。 哦,理解了,这里所谓的空闲时那个任务完全执行结束,线程才会被释放会池中。谢谢。 还有一个问题就是,CPU“饱和”是什么意思?
只在此山中 2013-03-11
  • 打赏
  • 举报
回复
线程被阻塞时,这个线程就没有到执行结束和释放,其他使用线程池的要求就可能导致线程池创建新线程来给请求,这样就增加了线程数量。 如果线程不阻塞,返回给线程池重用,当然线程池内的线程数没有增加。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧