Size: a a a

2020 July 04

W

WannaParadise in Qt
а все вижу спс
источник

M

Mysle in Qt
Привет всем, посоветуйте хороший полноценный материал по мультипотоку. Построение структуры, дэбаг и так далее. Желательно с уклоном в qt, но не критично.
источник

M

Mysle in Qt
Желательно на русском... Тяжело воспринимать терминологию с моим уровнем разговорного английского.
источник

AS

Anatoly Shirokov in Qt
Mysle
Привет всем, посоветуйте хороший полноценный материал по мультипотоку. Построение структуры, дэбаг и так далее. Желательно с уклоном в qt, но не критично.
источник

AS

Anatoly Shirokov in Qt
потоки в Qt уже в документации.
источник

M

Mysle in Qt
Спасибо большое =)
источник

M

Mysle in Qt
Нашел в "Читай город", что очень радует, но серия "Для профессионалов" заставляет бояться на старте)))
источник

AS

Anatoly Shirokov in Qt
Mysle
Нашел в "Читай город", что очень радует, но серия "Для профессионалов" заставляет бояться на старте)))
многопототочное программирование само по себе не является простым. но дорогу осилит идущий.
источник

AS

Anatoly Shirokov in Qt
Anatoly Shirokov
Переслано от Anatoly Shirokov
#thread #logger Ребят, я здесь набросал логгер, который помогает анализировать многопоточные программы, за счет удобной визуализации лога каждого треда в виде отдельного столбца. Вообщем, для всех, кто изучает многопоточку и асинхрон будет полезно. https://gist.github.com/anatoly-spb/3e000186075efb7d05f078d42a5f9bf0

пример использования:
#include "pretty_thread_logger.h"

#include <condition_variable>
#include <iostream>
#include <mutex>
#include <thread>

namespace example
{
 std::mutex condvar_mutex;
 std::condition_variable condvar;
 bool product = false;

 void producer()
 {
   using namespace std::chrono_literals;
   pretty_thread_logger::info("producer enter");
   pretty_thread_logger::info("std::this_thread::sleep_for(2s);");
   std::this_thread::sleep_for(2s);
   pretty_thread_logger::info("std::lock_guard<std::mutex> guard{ condvar_mutex };");
   std::lock_guard<std::mutex> guard{ condvar_mutex };
   pretty_thread_logger::info("product = true;");
   product = true;
   pretty_thread_logger::info("condvar.notify_all();");
   condvar.notify_all();
   pretty_thread_logger::info("producer leave");
 }

 void consumer()
 {
   using namespace std::chrono_literals;
   pretty_thread_logger::info("consumer enter");
   pretty_thread_logger::info("std::unique_lock<std::mutex> exit_locker{ condvar_mutex };");
   std::unique_lock<std::mutex> locker{ condvar_mutex };
   pretty_thread_logger::info("condvar.wait");
   condvar.wait(locker, []()
     {
       return product;
     });
   pretty_thread_logger::info("consumer leave");
 }
 void test()
 {
   pretty_thread_logger::info("test enter");
   pretty_thread_logger::info("create producer");
   std::thread p{ producer };
   pretty_thread_logger::info("create consumer 1");
   std::thread c1{ consumer };
   pretty_thread_logger::info("create consumer 2");
   std::thread c2{ consumer };
   pretty_thread_logger::info("wait for producer done");
   p.join();
   pretty_thread_logger::info("wait for consumer 1 done");
   c1.join();
   pretty_thread_logger::info("wait for consumer 2 done");
   c2.join();
   pretty_thread_logger::info("test leave");
 }
}

int main() {
 example::test();
 pretty_thread_logger::set_thread_column_width(30);
 pretty_thread_logger::show(std::cout);
}
@mueslionelove я приводил недавно ссылку на логгер, который позволяет наглядно представить выполнение многопоточной программы как раз для новичков. в проде его не надо использовать, а вот для понимания многопотока должно быть полезно.
источник

M

Mysle in Qt
Anatoly Shirokov
@mueslionelove я приводил недавно ссылку на логгер, который позволяет наглядно представить выполнение многопоточной программы как раз для новичков. в проде его не надо использовать, а вот для понимания многопотока должно быть полезно.
Отлично, спасибо большое
источник

m

mefest in Qt
Mysle
Нашел в "Читай город", что очень радует, но серия "Для профессионалов" заставляет бояться на старте)))
было бы желание. остальное нагуглишь. в потоки там описывают с нуля, но при этом базовые знания c++ должны быть
источник

M

Mysle in Qt
mefest
было бы желание. остальное нагуглишь. в потоки там описывают с нуля, но при этом базовые знания c++ должны быть
Конечно нагуглю, куда я денусь) почти все кейсы с многопотоком. Больше тянуть уже не могу с этим
источник

П

Павел in Qt
Mysle
Привет всем, посоветуйте хороший полноценный материал по мультипотоку. Построение структуры, дэбаг и так далее. Желательно с уклоном в qt, но не критично.
хороший материал по многопотоку это The Little Book Of Semaphores и внимательно и долго смотреть концепт многопоточности в ЯП golang, в плюсах всё устарело лет на 15 от мейнстрима
источник

AS

Anatoly Shirokov in Qt
Павел
хороший материал по многопотоку это The Little Book Of Semaphores и внимательно и долго смотреть концепт многопоточности в ЯП golang, в плюсах всё устарело лет на 15 от мейнстрима
вы хотите сказать, что акторная модель (1973) в golang что-то новое?
источник

m

mefest in Qt
Павел
хороший материал по многопотоку это The Little Book Of Semaphores и внимательно и долго смотреть концепт многопоточности в ЯП golang, в плюсах всё устарело лет на 15 от мейнстрима
стоит ли человеку советовать учить другой ЯП когда он спрашивал про потоки в контексте c++?
источник

SK

Stas Koynov in Qt
mefest
стоит ли человеку советовать учить другой ЯП когда он спрашивал про потоки в контексте c++?
:)
источник

П

Павел in Qt
Anatoly Shirokov
вы хотите сказать, что акторная модель (1973) в golang что-то новое?
какая ещё акторная?
источник

AS

Anatoly Shirokov in Qt
Павел
какая ещё акторная?
:)
источник

П

Павел in Qt
понятия не имею о чём вы говорите, я имел ввиду в первую очередь зелёные потоки и возможность взаимодействия с ними посредством каналов
источник

W

Wild_Wind in Qt
Павел
хороший материал по многопотоку это The Little Book Of Semaphores и внимательно и долго смотреть концепт многопоточности в ЯП golang, в плюсах всё устарело лет на 15 от мейнстрима
Есть хорошие либы с акторами на плюсах:
CAF,
SObjectizer,
etc...
источник