【发布时间】:2013-12-15 14:45:33
【问题描述】:
我有几个类,每个类在不同的线程中打开一个不同的程序,并使用 CreateProcess
执行/保存有关它的信息(如果有更面向 C++ 的方式来做到这一点,请告诉我——我看过了)。
某些类依赖于正在运行的其他程序之一。即如果A 停止,B 必须停止。不久前我编写了这段代码,然后我的解决方案是拥有一个具有静态函数的类,该函数运行各种程序和保持其“状态”的静态成员变量。我也在使用CreateThread
。
回想起来,这种方法看起来……脆弱而笨拙。
我不知道使用这样的“静态类”是否是一种好习惯(特别是回想一下初始化状态成员变量是多么尴尬)。我想让每个类都包含自己的运行功能。但是,我正在考虑的问题是如何让 B 班知道 A 是否尴尬地停止了。他们仍然需要知道一种方法来了解彼此的状态。请注意,我想在这次返工中使用std::thread
,而且我对多线程几乎没有经验。感谢您的帮助。
【问题讨论】:
标签: c++ multithreading c++11 thread-safety