社区
英特尔边缘计算技术
帖子详情
线程创建成本
vangork
2009-04-27 01:03:26
每条线程是否分配有足够的工作来证明线程创建成本并没有浪费?
这句话怎么去理解,创建成本是否浪费怎么去评估呢???
...全文
211
5
打赏
收藏
线程创建成本
每条线程是否分配有足够的工作来证明线程创建成本并没有浪费? 这句话怎么去理解,创建成本是否浪费怎么去评估呢???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vangork
2009-05-12
打赏
举报
回复
关键就是如何去评估线程的创建是否浪费了,怎么合理的去度量线程的创建成本和实际带来的好处呢???(我现在评价的指标只有程序运行时间阿)还有一个问题是怎么去合理的创建最优的线程个数?(如何能从理论上确定分配多少线程能达到最优化的效果)
tianfang
2009-05-01
打赏
举报
回复
线程的创建和销毁是销毁CPU、内存资源的,如果你面临大量的线程处理,线程的创建、销毁销毁的资源可能就要超过线程功能实现的时间,例如教科书上多线程的例子,线程的功能只是对一个数值进行加减,这种情况,线程的创建、销毁已经远远大于线程的运行的开销。
看看线程池,它的目标就是减少这个问题,线程先创建好,用的时候,从线程池中选择一个激活,将参数传递,线程处理完成,再让线程在线程池中休眠。就减少了线程的创建和销毁
microcloud
2009-04-29
打赏
举报
回复
从并行计算的角度讲, 创建线程是为了完成更多的计算任务。
如果你创建了很多线程,但程序本身并没有很高的并行度,或者说并没有足够多的计算资源可用(比如说,你在一个四核的处理器上创建十个线程,但最多只能同时有四个线程占用CPU资源),这时有些线程就是浪费的(因为创建/销毁线程也有一定的开销)。
猫已经找不回了
2009-04-27
打赏
举报
回复
[Quote=引用楼主 vangork 的帖子:]
每条线程是否分配有足够的工作来证明线程创建成本并没有浪费?
这句话怎么去理解,创建成本是否浪费怎么去评估呢???
[/Quote]
创建一个新线程,除了要从进程里分走一部分堆栈外,还需要额外的一点内存来维护它。
但是好处也是明显的,多线程没有多进程那么浪费,而多线程则有重入的问题。
具体就要见仁见智了。
intel_iclifort
2009-04-27
打赏
举报
回复
线程的创建和销毁本身也需要消耗一定的系统资源, 也就是花费相应的执行时间.
如果每个线程实际的工作时间比较短(也可以理解为工作量较小), 那么可能这样的多线程化不一定有意义. 也就是说未必8个线程一定比2/4个线程的效果好.
记得以前曾经看到过有帖子质疑OpenMP或者多线程化的效果, 其实可能就是它带来的好处不明显, 甚至有副作用
28个java常用的工具类源码
实战中有些代码直接套用就ok,不用动手了,会写代码的不一定是高手,但是高手一定是组织代码的老手!
两种
线程
创建
方式的区别
创建
一个新的
线程
有两种方式,第一种方式为通过继承Thread类,并实现Thread类中的run()方法。第二种
创建
线程
的方式是通过实现Runnable接口来
创建
一个新的
线程
。 下面总结一下两种
创建
线程
方式的区别: 从面向对象编程的角度来看:通过继承Thread类
创建
线程
使用的是基于继承的技术,而第二种方式是当然就是给予组合的技术来实现的。由于组合相对于继承来说,类与类之间的耦合性更低,所以它也更加
iOS多
线程
开发(二)--
线程
管理
线程
管理
线程
管理包括
创建
,配置,退出三部分。主要包括
创建
线程
的
成本
,
线程
创建
,
线程
属性配置,
线程
主体入口函数编写,
线程
中断等 一,
线程
创建
成本
1,为辅助
线程
分配的堆栈空间大小,便于系统和进程管理,以及为函数参数和局部变量分配空间 A,内核数据结构(kernel data structures)---大约1KB,This memory i
QT——C++ 多
线程
05
QThreadPool管理和重新设计单个QThread对象,以帮助减少使用
线程
的程序中的
线程
创建
成本
。在更改
线程
关联之前,QEvent::ThreadChange事件被发送到此对象。请注意,任何发布到此对象的新事件都将在targetThread中处理。计时器首先在当前
线程
中停止,然后在targetThread中重新启动(以相同的间隔)。更改此对象及其子对象的
线程
关联。如果对象具有父对象,则无法移动该对象。如果targetThread为零,则此对象及其子对象的所有事件处理都将停止。
JDK 21 虚拟
线程
:彻底搞懂 Java 的并发新纪元(含源码演示)
摘要: JDK 21虚拟
线程
(Virtual Thread)通过Project Loom引入,颠覆传统OS
线程
绑定模型,实现轻量级高并发。相比传统
线程
,虚拟
线程
创建
成本
低(支持百万级)、调度高效(协作式挂起)、兼容同步API(如synchronized),特别适合I/O密集型场景(如网络服务)。代码迁移简单,仅需替换Thread.startVirtualThread()或使用Executors.newVirtualThreadPerTaskExecutor()。Spring Boot 3.2已整合支持,但C
英特尔边缘计算技术
568
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章