Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/194: Рейтинг темы: голосов - 194, средняя оценка - 4.64
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511

Что такое синхронное и асинхронное выполнение операций

02.11.2011, 23:55. Показов 37034. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, что такое синхронное и асинхронное выполнение операций ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2011, 23:55
Ответы с готовыми решениями:

Синхронное и асинхронное программирование. Лжетермины?
Я очень удивлен как называют вещи в программировании не своими именами. Сейчас интересуюсь многопоточностью. Так например как можно...

Синхронное и асинхронное программирование. Парадокс терминологии
Я очень удивлен как называют вещи в программировании не своими именами. Сейчас интересуюсь многопоточностью. Так например как можно...

Синхронное и асинхронное чтение в Windows Forms Application
Доброго времени суток. Интересует простой вопрос. Мне нужно читать данные с usb-устройства, которое выдает информацию через равные...

11
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.11.2011, 00:16
Лучший ответ Сообщение было отмечено как решение

Решение

Асинхронные операции выполняются в отдельном потоке, синхронные - в том же, в котором вызван метод.

C#
1
2
3
4
5
6
7
// Вызов асинхронной операции
someObject.BeginAsyncOperation();
Console.WriteLine("Hello!"); // Сообщение выйдет сразу же после запуска предыдущего метода, не дожидаясь окончания операции
 
// Вызов синхронной операции
someObject.SyncOperation();
Console.WriteLine("Hello!"); // Сообщение выйдет только после завершения работы предыдущего метода
Если надо более наглядный пример, то, допустим, процесс мочеиспускания - синхронная операция, т.к. вы не застегиваете ширинку до тех пор, пока процесс не завершится (я надеюсь).
А вот, скажем, запекание утки - асинхронная операция - вы ее поставили в печку и пока она там сама печется, продолжаете заниматься своими делами дальше, вернувшись к ней только по звонку таймера, оповещающего о готовности.
30
0 / 0 / 1
Регистрация: 16.06.2011
Сообщений: 32
19.12.2012, 16:25
Цитата Сообщение от kolorotur Посмотреть сообщение
Асинхронные операции выполняются в отдельном потоке, синхронные - в том же, в котором вызван метод.
если вызвать поток так:
C#
1
2
Thread thrd = new Thread(Start);
thrd.Start();
или
C#
1
Methed_del.Invoke();
метод будет выполняться синхронно т.е. не в отдельном потоке? Зачем тогда нужны такие конструкции, если можно просто вызвать метод не создавая потока...?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.12.2012, 17:12
В первом случае метод Start будет работать параллельно с тем потоком, в котором вызывается приведенный вами код. То есть thrd.Start() не будет дожидаться окончания метода Start.
Второй случай равносилен простому вызову метода, но используется делегат, что добавляет немного динамики в плане выбора вызываемого метода (или группы методов).
1
0 / 0 / 1
Регистрация: 23.12.2012
Сообщений: 3
26.04.2013, 01:04
Использование асинхронного программирования позволит вашему приложению отвечать на запросы во время выполнения длительных операций. Например, приложение, загружающее информацию из Интернета, может в течение нескольких секунд ожидать получения данных. Если для получения информации вы используете синхронный метод в потоке пользовательского интерфейса, приложение блокируется до момента возврата из метода. Приложение при этом не будет отвечать на действия пользователя и будет казаться зависшим, что может встревожить пользователя. В такой ситуации гораздо эффективней использовать асинхронное программирование, которое позволит приложению работать и отвечать на действия пользователя в графическом интерфейсе, одновременно ожидая завершения длительной операции.
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
12.08.2014, 14:39
Почитав комменталии я уже сам начал сомневаться...
Т.е. можно сказать что ассинхронный == многопоточный?
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
12.08.2014, 15:43
some_name,
Это разные понятия, синхронность относится к последовательности выполнения.
0
27 / 27 / 7
Регистрация: 15.06.2014
Сообщений: 165
12.08.2014, 17:44
Цитата Сообщение от kolorotur Посмотреть сообщение
пока процесс не завершится (я надеюсь)

Не по теме:

После завершения работы иногда может быть утечка памяти в процессе и выбрасывается исключение. В общем класс мочеиспускания не доработан.

2
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
19.10.2018, 12:20
Цитата Сообщение от some_name Посмотреть сообщение
Почитав комменталии я уже сам начал сомневаться...
Т.е. можно сказать что ассинхронный == многопоточный?
Я думаю есть в этой фразе смысл, Если железо поддерживате HyperThreading и эта опция включена.
Т.к. в одном потоке может запекаться Курица, а во втором домохозяйка может спокойно, сидя на диванчике болтать с подругой по телефону.

А вот, что будет когда HyperThreading выключено, а курица запекается, а программист "садит" хозяйку на диванчик поболтать?
0
Эксперт .NET
 Аватар для Usaga
14138 / 9366 / 1350
Регистрация: 21.01.2016
Сообщений: 35,234
19.10.2018, 12:36
Bulky, какую-то фигню сморозили. Асинхронность != многопоточность.
0
-21 / 29 / 2
Регистрация: 17.03.2018
Сообщений: 778
19.10.2018, 12:48
Цитата Сообщение от Usaga Посмотреть сообщение
Bulky, какую-то фигню сморозили. Асинхронность != многопоточность.
Пост небольшой попробуйте вникнуть.
0
Эксперт .NET
 Аватар для Usaga
14138 / 9366 / 1350
Регистрация: 21.01.2016
Сообщений: 35,234
19.10.2018, 12:50
Bulky, мой ещё короче. Попробуйте, в свою очередь, вникнуть в него.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2018, 12:50
Помогаю со студенческими работами здесь

Синхронное выполнение рекурсии
имеется вызов ф-ции вида: var getChilds = function (qquery, array) { pool.query(qquery, array, function(error, result)...

Синхронное выполнение и setTimeout()
К примеру есть кусок кода: function wrap(){ if(self.queue.length > 0){ setTimeout(self.queue,600); ...

Запись операций над множествами, что такое C_I B
Встретилась с заданием. Не могу понять, что значит запись AIB, где A и B - подмножества I. Задание в картинке. Объединение,...

Синхронное выполнение ajax-запроса
Может кто нибудь знает как реализовать действенное выполнение подобной задачи. Нужно узнать что вернет функция удаленный файл, но функция...

Синхронное выполнение HTTP-запроса
Подскажите, как правильно реализовать следующую задачу. У компонента случается 'CanDeactivate', внутри которого нужно реализовать...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru