|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
|||||||||||
Объясните тип any. Как с ним работать?29.02.2024, 19:02. Показов 1165. Ответов 14
Метки нет (Все метки)
Помогите разобраться с типом any
Был такой код
Прочитал про sync.Map Пытался сделать так
0
|
|||||||||||
| 29.02.2024, 19:02 | |
|
Ответы с готовыми решениями:
14
Текстовый тип PAnsiChar - как с ним работать ? Неизвестный BLE тип девайса под 10й виндой - как с ним работать? |
| 29.02.2024, 19:11 | ||
Сообщение было отмечено voraa как решение
Решениеhttps://go.dev/tour/methods/15 https://go.dev/tour/methods/16
1
|
||
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
||||||
| 29.02.2024, 19:22 [ТС] | ||||||
|
Т.е. надо
Спасибо
0
|
||||||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 01.03.2024, 15:23 | |
|
voraa, так будет паника, если не ok.
Добавлено через 6 минут И всё равно GetBlock не потокобезопасна. Две горутины могут такой функцией записать два разных Block для одного и того же n.
0
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 01.03.2024, 15:57 | |
|
0
|
|
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
|||||||||||||
| 01.03.2024, 17:35 [ТС] | |||||||||||||
А такое решение? (Спрашиваю, т.к опыта маловато)
0
|
|||||||||||||
| 01.03.2024, 18:51 | ||||||
|
1) В глаза бросается mu.Unlock() в конце. Прввильней так
0
|
||||||
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
||||||||
| 01.03.2024, 20:17 [ТС] | ||||||||
|
На самом деле это решение мне не очень нравится. Заполнение нового блока - длительная операция - там идет считывание из файла. Считывается блок один раз, а разные горутины могут обращаться к считанным блокам много раз. И когда какая то горутина блокирует, что бы считать какой то блок, то другие уже не могут обращаться к уже считанным. blocks - это некий хеш. Вот думаю про такое решение.
Я правильно понимаю?
0
|
||||||||
| 01.03.2024, 20:54 | ||
|
Как мне кажется, строки 6-7 не нужны должна быть проверка 0<=n<maxblocks
0
|
||
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
|||
| 01.03.2024, 21:15 [ТС] | |||
|
Допустим горутина хочет получит блок 10, которого нет. она проходит строчки 6-7 потом блокирует код, начиная со строки 9. Как я понимаю, блокировка говорит, что другие горутины не могут одновременно с первой выполнять код после 9 строчки. Они, дойдя до нее будут ждать, когда блокировка будет снята. Но если другой горутине понадобится блок 5, который уже есть, она благополучно выполнит код из строк 6-7 и получит свой блок, пока первая горутина считывает свой 10й блок. Иначе ей тоже придется ждать, пока первая не считает свой. Или все работает совсем не так?
0
|
|||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 02.03.2024, 11:02 | |
|
0
|
|
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
||
| 02.03.2024, 12:09 [ТС] | ||
|
Реализовал код из поста 8. Собрал небольшую статистику. На запросе было 126 обращений к GetBlock В 16 случаях было считывание с диска. Но в 5 случаях, как раз возникала ситуация, когда горутина требовала блок, но изначально его не было, и ей приходилось ждать окончания блокировки. И после этого, он там появлялся (строки 11-14)
0
|
||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
||
| 02.03.2024, 13:40 | ||
|
0
|
||
|
1259 / 1211 / 180
Регистрация: 21.01.2024
Сообщений: 5,576
|
|
| 02.03.2024, 13:50 [ТС] | |
|
0
|
|
| 02.03.2024, 13:50 | |
|
Помогаю со студенческими работами здесь
15
Where и как с ним работать? ПакетЗапросов как с ним работать? Прокси как с ним работать? DaraGridView - как с ним работать
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
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
Использованы. . .
|