Channels. Передача данных между потоками. Язык Rust
Ғылым және технология
rust.dev/
github.com/rustninja
web3.online
В данном ролике я рассматриваю каналы / channels в языке программирования rust. Использую каналы для передачи сообщений между потоками. Создаю много отправителей и читаю данные в главном потоке.
Цикл "Многопоточность"
№1: • Multithreading. Cuncur...
№2: - данное видео
№3: • Mutex. Lock. Ark. Разд...
Таймкоды:
00:00 Начало
00:25 Вводная часть о каналах
01:05 Sender and Reciever
01:25 Mpsc - multiple producer, single consumer
03:10 Создание фонового потока, который будет отправлять через канал сообщения
03:40 Send method
04:01 Добавляем принимающую часть. Reciever or consumer
04:10 Recv vs try_resv
05:40 Спасибо концепции владения и заимствования, спасает нас от ошибок многопоточности
08:17 Отправка множества сообщений через канал
09:58 Создание множества отправителей (senders)
12:14 Итоги
Чат для общения в Telegram: t.me/web3online
#rust #rustlang #coding
Пікірлер: 5
Друзья, если это видео было вам полезно, вам нравятся мои ролики и вы хотите сказать мне спасибо, достаточно просто поставить лайк и написать комментарий - я буду очень рад👏!
Спасибо, перед просмотром лайк!🙂👍 Клёвая и удобная эта штука mpsc оказывается, вместе с владением получается отличное сочетание возможностей и потокобезопасности🙂
👋👍
Спасибо!
Привет Никита. Ткни носом куда копать для реализации задачи. Создать огромный массив данных в ОЗУ (шара для все потоков? так можно в RUST?) (нейросеть), по команде (значению переменной/флага) фоновые потоки (ядра\потоки процессора) начинают работу с общим масивом (запись\чтение). Основной поток ждет изменение состояние переменной\флага о том что все потоки справились -> что-то-там делаем -> Опять устанавливаем флаг старта обаботки -> многопотоковая работа -> флаг завершения всех потоков =1 -> опять что-то деламем в основном потоке -> флаг старта многопотока ... и дальше по кругу