相关疑难解决方法(0)

在Windows下创建和终止线程需要多长时间?

我已将一个复杂的数组处理任务拆分为多个线程,以利用多核处理,并看到了很多好处.目前,在任务开始时我创建线程,然后在完成工作时等待它们终止.我通常创建的线程数量是核心数量的四倍,因为每个线程可能需要花费不同的时间,并且拥有额外的线程可确保所有核心在大多数时间内保持占用状态.我想知道在程序启动时创建线程会有多大的性能优势,让它们保持空闲直到需要,并在我开始处理时使用它们.更简单地说,在线程内部处理之上和之后开始和结束新线程需要多长时间?我现在正在使用线程

CWinThread *pMyThread = AfxBeginThread(CMyThreadFunc,&MyData,THREAD_PRIORITY_NORMAL);
Run Code Online (Sandbox Code Playgroud)

通常,我将在64位架构上使用8个内核的32个线程.该过程目前需要<1秒,并且每次刷新显示时都会启动.如果开始和结束一个线程<1ms,则返回不能证明这一点.我在分析这个问题时遇到了一些困难.

这里相关问题有所帮助,但对于我所追求的内容有点模糊.任何反馈意见.

c++ performance multithreading

20
推荐指数
1
解决办法
6273
查看次数

浮点加法和乘法是否相关?

当我添加三个浮点值并将它们与1进行比较时,我遇到了问题.

cout << ((0.7 + 0.2 + 0.1)==1)<<endl;     //output is 0
cout << ((0.7 + 0.1 + 0.2)==1)<<endl;     //output is 1
Run Code Online (Sandbox Code Playgroud)

为什么这些价值观会有所不同?

c++ floating-point

10
推荐指数
3
解决办法
5310
查看次数

标签 统计

c++ ×2

floating-point ×1

multithreading ×1

performance ×1