gpt4 book ai didi

windows - C/C++ : duplicate main() loop in many threads

转载 作者:可可西里 更新时间:2023-11-01 11:14:49 25 4
gpt4 key购买 nike

我有这个“有趣”的问题。我有这个遗留代码,看起来像

int main()
{
while(true) {
doSomething();
}
}

我想在许多线程中复制 doSomething(),这样现在 main() 看起来像

int main() {
runManyThreads(threadEntry)
}

void threadEntry() {
while(true) {
doSomething();
}
}

问题是 doSomething() 访问许多全局变量和静态变量,我无法更改它的代码。是否有复制这些静态变量的技巧,因此每个线程都有自己的集合? (某种线程本地存储,但不影响 doSomething())..我使用 VisualC++

最佳答案

长话短说,不,至少不合理。

在不想更改 doSomething() 的情况下,最好的办法可能是运行现有进程的多个副本,而不是尝试使用多线程。如果每个线程都将使用全局变量的单独副本,无论如何,多线程和多进程之间的区别在任何情况下都将是相当小的。

关于windows - C/C++ : duplicate main() loop in many threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3346637/

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