gpt4 book ai didi

c++ - 如何访问与 C++ 中的线程关联的机器状态?

转载 作者:行者123 更新时间:2023-11-30 04:09:41 24 4
gpt4 key购买 nike

在我的多线程设计中,一个线程的任务是顺序运行 n 个对象,它们被附加在一个列表中 例如:线程在列表上迭代并调用对象的 run() 方法。一个对象完成它的任务后,它必须被线程移除,这很容易,因为在调用一个对象的 run() 方法后,线程检查对象是否完成了它的任务。因此在调用一个对象的 run() 方法之后对象,它的状态要么完成要么等待 I/O 操作,并且在 I/O 期间线程处理其他对象。

问题 当线程回调对象的 run() 方法时,它将从第一行开始 run() 并且机器和变量的状态被初始化并且与之前的调用不同线程的 run() 方法(它在 run() 中执行 return() 以等待 I/O)。

问题如何保存线程本地内存的当前值(机器状态)并在当前线程上重新加载?

我知道我可以使用更多的线程来运行对象并在运行 run() 期间锁定线程直到 I/O 操作完成,但是当 n 很大时这不是个好主意。因为它必须创建大量线程,使得它们中的大多数(可能是所有线程)都在等待 I/O 操作。

最佳答案

C++11 在标准库中添加了“promises”和“futures”。它们专为您所描述的内容而设计。

关于c++ - 如何访问与 C++ 中的线程关联的机器状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068322/

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