Как можно быстро ознакомиться с многопоточностью и ассинхронным программированием?
Добрый день!
Меня очень огорчает, что я совсем не знаю, как писать многопоточные программы, и даже процесс от потока едва отличаю.
Вместе с тем, мне бы хотелось для начала быстро ознакомиться с темой целиком, чтобы в ней хоть как-то ориентироваться, перед тем как изучать это всё глубоко и основательно.
Мне бы очень хотелось бы найти какой-нибудь простой ознакомительный материал, чтобы в нём было разложено всё по полочкам и на пальцах.
Как результат, я хотел бы написать программу, которая могла бы вести расчёт параллельно, используя сразу все ядра процессора.
И ещё... Я бы очень хотел найти материалы, в которых бы не было C++.
ну по поводу "используя все ядра процессора" эт вы конечно загнули, чтобы таким процессом управлять нужен драйвер, не меньше. ОС сама определяет что и где считать. Многоядерность !== многопоточность. Но глубоко в эту тему не копал, может есть АПИ для этого
поговори с ИИ (выбирай топовые модели а не младшие gpt4o, claude sonnet, gemini pro/.., до углубления в сложные вещи он на текущий момент идеальный помощник в обучении.
Но когда до реальных задач дойдешь, перепроверяй все,.. иногда там примитивные ошибки вылезают, которые модель сама найдет, если на них указать (например не собирается проект или выдает ошибку),.. 1-2 итерации и резальтат готов.
Один из способов применения ИИ - это работать в тандеме с ним, ты должен понимать каждый их ответ и быдь готов указать на ошибки.
Filipp42, я не пользовался o1, немного смотрел на o1-preview, ошибок у нее не замечал, мало того она помогала мне найти решения, которые не могли найти простые модели.
Но повторяю, знания, которые собраны у ИИ через обучающую выборку - свалены в кучу. То что gpt в принципе их помнит, и даже может этими знаниями пользоваться, дико шокирует, так как не должно было бы (из-за чего я не понимаю тех кто вопит о том что это нисколько не интеллект, в примитивном варианте - вполне себе интеллект)...
пример ошибки,
которую скорее всего допустит и o1 - спрашиваю о способе смонтировать файловую систему ext4 в linux но возможностью игнорировать большие/маленькие буквы при работе с файлами (это фича виндового fat/ntfs/hpfs, когда создав 'Мой Файл.txt' ты можешь открыть его по имени 'мОЙ фАЙЛ.TXT'), задавал вопрос разными способами, включая выдачи в запросе части ответа, но все равно обычные gpt могут предлагать ключи монтирования mount, которых у ext4 нет... а все потому, что в обучающую выборку попала длинная портянка мануала man mount, где в очень неудобной форме свалены в кучу все файловые системы... но если эту же портянку, подать в запросе, то gpt начинают в ней разбираться и понимать, что ключами mount делу не поможешь и предлагать решения (другие файловые системы или патч, который кстати в 2019г включили в состав ядра но похоже эта информация еще не очень попала в новые версии ИИ)
Берете любую вузовскую методичку про теорию вычислительных процессов. Открываете ее там, где описано что такое критический ресурс, мьютексы, семафоры.
Любой ЯП, который вам в консоль может выводить результат (CLI-приложение), смотрите, какие расширения нужно подключить, чтобы работали потоки и семафорные методы блокировки.
Открываете эту же методичку на практических заданиях/лаборатоке, и смотрите задание, как разграничить конкурирующие потоки к одному критическому ресурсу - классическая задача "о производителе и потребителе".
Делаете лабу.
Все, вы работаете с потоками.