私のプログラマーでは、2つの別々のスレッドを実行したいと思います。これらのスレッドは、初期化され、メインスレッドで起動されます。このコンセプトはうまく動作しますが、一時停止していない間に子スレッドのいずれかにクールダウンを行わなければならないときにも、スレッドを一時停止するように見えます。一例として、本の別のスレッドでスレッドを実行できますか?
思う:
#include <iostream>
#include <thread>
class testClass {
static void grandchild();
static void child();
public:
void parent();
};
void testClass::grandchild() {
//infinite loop of nothing;
while (true);
}
void testClass::child() {
//thread initalising and
std::thread grand(&testClass::grandchild);
std::cout << "before join" << std::endl;
grand.join();
std::cout << "after join" << std::endl;
}
void testClass::parent() {
std::thread child(&testClass::child);
child.join();
}
int main() {
testClass parentclass;
parentclass.parent();
}
このプログラムの出力は今、これがまた起こる
である私はthis_thread ::一時停止sleep_forや他の機能を実行するとき糸。誰も私になぜこれが起こり、これを適切に実装するために可能なことがあるのか、これがC++で可能なのかを説明できますか?
あなたが書くとき:*「それは一時停止されていない間、私は今、子スレッドの1にクールダウンをしなければならない」*、あなたは何をすべきか平均?この文脈で*クールダウン*とは何を意味しますか? – wally
あなたは何を期待していますか?無限ループが終了するのを待っています。 –
この例は、私が持っている問題を示すためのものです。 クールダウンとは、特定の時間の後に子スレッドの値を変更する必要があるということです。しかし、私は子スレッドが一時停止するのをやめたいのです – anon