Eu tenho um segmento de atualização que executa curl_multi_perform em um loop while nele. Eu quero ter certeza de que o tópico não fica apenas parado e girando, então eu gostaria de reduzi-lo a algumas atualizações por segundo. Isso funciona bem, exceto quando se faz uploads ou downloads de arquivos em mais de 10 MB, […]
De acordo com isso , unique_lock pode ser usado para bloqueio recursivo declarando um std::unique_lock e, na verdade, compila bem. No entanto, parece ao examinar o código (gcc 4.8.2 e 4.9.0) que unique_lock não adia para _Mutex.lock , mas implementa o próprio método de bloqueio: void lock() { if (!_M_device) __throw_system_error(int(errc::operation_not_permitted)); else if (_M_owns) __throw_system_error(int(errc::resource_deadlock_would_occur)); […]
Eu faço algumas computações recursivas e gosto de dividir o trabalho para várias CPUs. No entanto, quando dentro de algum trabalho recursivo, é muito elaborado continuar um novo segmento onde estamos atualmente, sem a sobrecarga de um esquema de endereçamento artificial para as estruturas recursivas. Para operações de grande escala, fork () faz isso muito […]
Compilando com $ g++ -std=c++0x -I “inc” src/*.cpp e recebendo src/ProcessGroup.cpp:25:10: error: no matching constructor for initialization of ‘std::__1::thread’ thread t(&Process::Run, p, exit_code); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:349:9: note: candidate template ignored: couldn’t infer template argument ‘_Fp’ thread::thread(_Fp&& __f, _Args&&… __args) ^ g++ está reclamando que não pode encontrar um construtor correspondente para os argumentos que dou: […]
Agora eu usei o código: UINT postThread(LPVOID pParam) { CGA_SpikeDlg*p = (CGA_SpikeDlg*)pParam; p->RunTimer(); return 0; } void CGA_SpikeDlg::threadNew() { AfxBeginThread(postThread, this); } void CGA_SpikeDlg::RunTimer() { SetTimer(1, 6000, NULL); } void task1(M_args Parameter_, double Mtime, double tempVB, double TimeStep, double m_I, int FlagParameter[], M_args_Bound Parameter_Bound[], int MaxGeneration, float gL, float C, const int POPULATION_SIZE, float crossver, […]
Com base em uma pergunta anterior , fiquei me perguntando se o código a seguir funcionaria para calcular limites inferiores e superiores para o valor médio de uma propriedade sendo medida usando atomics: std::atomic m_accLower; std::atomic m_countLower; std::atomic m_accUpper; std::atomic m_countUpper; // … void Class::UpdateLower( unsigned int delta ) { m_countLower.fetch_add( 1 , std::memory_order_relaxed ); […]
Eu tenho um aplicativo de interface do usuário em C ++ e QT5.4, estou usando CryptoPP 5.6.2 para criptografar arquivos. Eu corri para o seguinte problema: Quando o botão Criptografar é atingido, um novo segmento é iniciado com base neste tutorial . // new thread CryptoWorkerThread = new QThread; this->worker = new CryptoWorker(fileName.c_str(), newFileName.c_str(), key, […]
Atualmente eu preciso implementar um algoritmo multi-thread baseado no Qt. Talvez eu devesse tentar estender o QThread . Mas antes disso, eu gostaria de perguntar, se eu puder usar apenas dois QTimer s timer1 , timer2 e conectar seu sinal de timeout aos threads respectivamente, para implementar um programa multi-thread “falso”?
Eu quero fazer um programa simples que inicia um cmd.exe paralelamente e leva a input do usuário como um comando, que é então passado para o cmd.exe, após a execução do meu programa deve ter a saída de cmd.exe e exibi-lo para o usuário. Basicamente, uma interface para um prompt de comando. Eu não quero […]
Eu tenho um acidente pouco frequente, mas bastante consistente na minha aplicação Qt 5.2.0 que estou tendo um diagnóstico de um diabo, mas acredito estar relacionado ao QSharedData . A aplicação é altamente multi-threaded, o que é presumivelmente parte do problema. A class em questão está aqui: class RouteData : public QSharedData { public: RouteData() […]