gpt4 book ai didi

multithreading - 是否可以在短时间内有效地使用多线程

转载 作者:行者123 更新时间:2023-12-03 13:15:05 25 4
gpt4 key购买 nike

考虑一下我有一个在主线程中执行某些操作的单线程代码,它大约需要 10-20 毫秒。我想利用我的处理器的两个内核并将任务拆分给位于不同内核的两个线程。从技术上讲,我可能应该恢复两个 sleep 线程并让自己休眠,直到它们完成并再次休眠。如果任务足够长可以执行,那就没什么可怕的了。但是对于 10-20 毫秒,我怀疑使用众所周知的同步技术会花费我大量的时间。如果我太怀疑并且 Windows/CPU 可以很好地使所有 sleep /唤醒请求有效,那么拆分仍然有意义的最小时间是多少,1ms、10ms、100ms?

最佳答案

使用现有线程池(现有休眠线程)的多线程可以加快 10-20 毫秒的操作。

唤醒线程并加入它们的具体同步调用是微不足道的,远小于 1ms。

要注意的一件事是引用的位置。如果在多个线程上运行的代码访问相同的内存,那么 CPU 将不得不同步内存访问,这可能会降低实际的性能提升。

同样,如果线程正在使用公共(public)资源并且需要锁定或其他线程同步,等待这些锁定会降低性能。

如果这些线程中有任何 I/O,那么将其拆分为线程将有助于最大程度地加快速度。

关于multithreading - 是否可以在短时间内有效地使用多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12196961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com