Articles of multithreading

Encadeamento em espera entre o curl_multi_perform

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, […]

Pode unique_lock ser usado com um recursive_mutex?

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)); […]

Empilhamento de pilha de empilhadeira como threads em C ++

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 […]

Multithreading com funções de membro sobrecarregadas

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: […]

Exibição em tempo real de alterações de variables

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, […]

Liberar Adquirir Semântica para Calcular o Limite Inferior e Superior da Média

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 ); […]

Não é possível matar o encadeamento Qt com o CryptoPP FileSink sendo executado no método de execução do encadeamento

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, […]

Posso usar o QTimer para implementar um algoritmo multithread?

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”?

Tornar o programa c ++ para transmitir a saída de input para o comando do Windows prommpt interativamente

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 […]

Queda de QSharedData

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() […]