このコードの何が問題なのか知りたいです。時々私はセグメンテーション障害を起こしますが、そうでないこともあります。これは私がより大きなソフトウェアで抱えている問題です。アイデアは、同時に1つのスレッドだけがメソッドMyClass::printを実行しているということです。この単純な例でも、セグメンテーション違反で失敗します。コードの何が問題になっていますか?どうすれば問題を解決できますか?
ありがとう!
#include <iostream>
#include <ctime>
#include <QMutex>
#include <QtConcurrentRun>
class MyClass : QThread {
public:
void print(std::string str) {
mutex.lock();
std::cout << "In some thread: " << str << "\n";
mutex.unlock();
}
private:
QMutex mutex;
};
int main() {
MyClass myCl;
for(int i=0; i < 10; i++) {
QtConcurrent::run(&myCl, &MyClass::print,std::string("bla"));
}
}