Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 73
1

Понимание потоков и async await

10.12.2018, 23:05. Просмотров 950. Ответов 4
Метки нет (Все метки)

Всем привет, хочу задать пару вопросов опытным программистам:
1)Что такое потоки ? как они реализованы в .net и как реально выполняются процессором, что происходит при создании потока, как поток так скажем "уничтожается", что происходит в этот момент?(если есть годные ссылки, напишите пожалуйста).
2)Есть в C# конструкция async/await, прочитал в msdn что при выполнении эта конструкция не выделяет под себя отдельный поток из этого вопрос - как это работает? какие есть альтернативы в java(про futures уже знаю, но как понял они не являются альтернативой, а что то типа promise - ов из javascript)
3)Буду рад ссылкам на рабочий код где используется async/await.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 23:05
Ответы с готовыми решениями:

Async, await
Объясните работу async, await. Облазил весь интернет, но ничего толкового не нашел. Заранее...

Использование async/await
пытался написать такой тестовый код: нифига не работает, я видимо что-то неправильно делаю. Что...

Пауза через async/await
Написал процедуру Пауза на C# с помощью async/await, но почему-то не работает. Вот код: private ...

Async/await различия методов
В чем разница между AsyncWork1/2/3 private async void btnStart_Click_1(object sender, EventArgs...

4
81 / 62 / 24
Регистрация: 13.08.2018
Сообщений: 167
11.12.2018, 07:30 2
Цитата Сообщение от adik3dx Посмотреть сообщение
Что такое потоки ?
Потоки (Threads) или задачи (Tasks) ?
Цитата Сообщение от adik3dx Посмотреть сообщение
как они реализованы в .net и как реально выполняются процессором, что происходит при создании потока, как поток так скажем "уничтожается", что происходит в этот момент?
.Net лишь обертка над API потока конкретной OS. Как потоки работают знает только OS, на которой они выполняются.
0
Администратор
Эксперт .NET
8851 / 4124 / 741
Регистрация: 17.04.2012
Сообщений: 8,955
Записей в блоге: 14
11.12.2018, 08:07 3
Цитата Сообщение от adik3dx Посмотреть сообщение
Что такое потоки ? как они реализованы в .net и как реально выполняются процессором, что происходит при создании потока, как поток так скажем "уничтожается", что происходит в этот момент?(если есть годные ссылки, напишите пожалуйста).
На Windows .NETом во многих местах используется WinAPI.
Например, для создания простого потока используется функция CreateThread() и другие: Creating Threads
Существуют и другие методики: пул потоков, волокна и т.д.
About Processes and Threads
.NET предоставляет обёртку над многими из этих вещей.

Очень подробно о многопоточном программировании в .NET написано у Рихтера в книге CLR via C#.
0
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 73
11.12.2018, 10:06  [ТС] 4
Конечно речь идет о потоках(Threads) а не задачах, ведь сами то задачи выделяют под свою работу потоки). Вот мне и интересно узнать как все происходит под капотом, если можете приведите пример определенной ОС и как .net/c# работает с этим. Можете просто кинуть мне ссылку на нормальный источник, если мало времени объяснять
0
81 / 62 / 24
Регистрация: 13.08.2018
Сообщений: 167
11.12.2018, 14:31 5
Цитата Сообщение от adik3dx Посмотреть сообщение
Вот мне и интересно узнать как все происходит под капотом
Цитата Сообщение от adik3dx Посмотреть сообщение
как реально выполняются процессором
В сущности поток это всего лишь набор данных (структур) который хранится в ОЗУ. Для запуска потока ОС дает команду процессору
Assembler
1
call [address], jmp [address]
или еще какую, чтобы он начал выполнять код потока из ОЗУ. Так то с# программисту это знать не обязательно, разве что ради интереса.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2018, 14:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Непонятная работа async await
Здравствуйте. В общем, все есть на скриншоте. Вопрос: что за фигня?

Асинхронное программирование await async
Всем привет! Пытаюсь разобраться с асинхронным вызовом методов. Узнал такую вещь: если...

async/await как замена многопоточности
Можно ли использовать эту конструкцию как полную замену потокам, или в каких случаях не получится?

Sockets client+server with await/async c# 5.0
Уже долго пытаюсь найти хотя бы какой то пример, но пока безуспешно, поэтому обращаюсь с просьбой к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.