|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
||||||
Асинхронный доступ к массиву28.08.2019, 17:42. Показов 1580. Ответов 7
Метки нет (Все метки)
День добрый!
Как организовать асинхронный доступ к массиву, который будет использоваться только для чтения из разных потоков? Не будет-ли в этом случае излишним:
Является-ли хорошей практикой программирования использовать массив для описанной выше ситуации?
0
|
||||||
| 28.08.2019, 17:42 | |
|
Ответы с готовыми решениями:
7
Асинхронный доступ к статическим данным Получить доступ к массиву
|
|
91 / 65 / 18
Регистрация: 09.12.2015
Сообщений: 207
|
|
| 28.08.2019, 17:56 | |
|
Если только читать, то проблем быть не должно.
1
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 28.08.2019, 18:17 | |
|
1
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||
| 28.08.2019, 18:17 | ||||
syncObject будет синхронизации)
1
|
||||
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 28.08.2019, 20:06 [ТС] | |
|
Во-первых всем спасибо за ответы.
По поводу терминологии. Почему я говорю "асинхронный доступ" и не говорю про "параллельный". (Если, что-то не так, то прошу меня поправить.) Асинхронный - вызов не блокирующей операции, которая сразу же передает управление вызывающему потоку, несмотря на продолжающееся (если повезет ) выполнение в другом потоке.Асинхронный доступ (в данном случае к ресурсу) - доступ без блокирования ресурса (в данном случае чтение) Почему я не говорю "параллельный"? Потому, что рассматриваю исполняющийся код с точки зрения выполнения его в отдельном потоке абстрагируясь от его возможного выполнения в других параллельных потоках. Меня не волнует, что делают параллельные потоки, т.к. сейчас рассматривается проблема доступа к разделяемому ресурсу из вызова выполненного асинхронно. Не считаю правильным выбирать между асинхронным и параллельным, т.к. исходя из всего вышеизложенного параллельный доступ к ресурсу может быть как асинхронный (без lock, например) так и синхронным (c lock).
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||||
| 28.08.2019, 21:15 | |||||
|
синхронизированный - не синхронизированный. это про доступ: наличие/отсутствие какой либо синхронизации (например лок) Ну по крайней мере я так понимаю русскоязычную терминологию. Могу ошибаться, конечно)
2
|
|||||
|
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
|
|
| 28.08.2019, 23:24 [ТС] | |
|
1. Асинхронный доступ.
Я нашел Троелсена :"Язык программирования С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание". Там есть заголовок "Асинхронный доступ к данным в .NET 2.0" (Глава 22). Насколько я понял (в 10 часов вечера), то термин можно разъяснить как доступ к данным (тут все понятно) из асинхронного вызова. Конкретно там речь идет о доступе к БД. По идее название топика должно отражать суть проблематики. Получается не вводящий никого в заблуждение топик должен звучать приблизительно так: "Безопасный доступ к массиву из асинхронного вызова". 2.синхронный/синхронизированный. Тут я не прав. И в общем я конечно нагородил ерунды про lock объединив два этих термина в один. 3.параллельный/одновременный Я не говорю что эти термины не применимы к моей ситуации. Просто считаю (возможно ошибочно), что говоря о параллельности "загрязняю" описание сути проблемы лишними деталями.
1
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||
| 28.08.2019, 23:47 | |||
|
1
|
|||
| 28.08.2019, 23:47 | |
|
Помогаю со студенческими работами здесь
8
доступ к массиву из другого класса Создание и доступ к массиву по его имени Получить доступ к динамическому массиву из других классов По двумерному массиву массиву А получить одномерный массив В, присвоив его k-му элементу значение TRUE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|