❓ Что делает //go:linkname
Anonymous Poll
9%
Определяет зависимость между модулями в go.mod
42%
Указывает линкеру объединить несколько объектных файлов в один бинарник
31%
Связывает локальную переменную или функцию с сущностью из другого пакета
18%
Помечает функцию как exported для использования в C-коде через cgo
❓ Переменные, объявленные, но не использованные в Go, приведут к ошибке в рантайме
Anonymous Poll
42%
Да
57%
Нет
1%
Наверное
❓ Что делает math.Trunc()
Anonymous Poll
76%
Отсекает дробную часть числа
5%
Отсекает целую часть числа
5%
Оставляет в числе только нули
18%
Убирает нули из числа
❓ Почему в мапе могут возникать коллизии
Anonymous Poll
2%
Потому что Go использует недостаточно быстрые хеш-функции
88%
Несколько разных ключей могут дать одинаковый хеш или попасть в один bucket
9%
map в Go имеет фиксированный размер и при превышении лимита новые ключи вытесняют старые
6%
Вместо хранения полного хеша для каждого ключа используется только первый байт
👍1
❓ Вопросы прошлой пятидневной недели мне _____________
Anonymous Poll
15%
Очень понравились
33%
Понравились
18%
Скорее не понравились
12%
Не понравились
36%
Почему такой акцент на пятидневной неделе?
👍1
❓ Какие методы предоставляет atomic.Value
Anonymous Poll
27%
Read() и Write()
11%
Lock() и Unlock()
3%
Start() и Stop()
62%
Store() и Load()
❓ Что произойдет, если в atomic.Value сначала записать строку, а потом попытаться записать целое число
Anonymous Poll
37%
Значение перезапишется без ошибок
53%
Программа завершится с паникой
8%
Второе значение проигнорируется
5%
Произойдет дедлок
❓ Обеспечивает ли atomic.Value потокобезопасность вложенным полям структуры
Anonymous Poll
28%
Да, полностью
60%
Нет, только атомарность самой структуры
13%
Да, но только для числовых типов
0%
Только для полей типа string
1%
Нет, если полей больше 10
❓ Что означает понятие потокобезопасность
Anonymous Poll
3%
Код захэшируется при выполнении параллельно
89%
Код корректно выполнится при выполнении параллельно
7%
Код скрывает переменные при выполнении параллельно
3%
Код нельзя запустить параллельно
❓ В какой момент вычисляются аргументы функции, вызванной с defer
Anonymous Poll
31%
Во время выполнения отложенной функции
60%
В момент объявления defer
6%
В конце программы
5%
Во время компиляции
❓ Что произойдет с порядком выполнения нескольких defer вызовов в одной функции
Anonymous Poll
11%
Выполняются в порядке их объявления
1%
Выполняются одновременно горутинами
85%
Выполняются в обратном порядке
3%
Выполняются случайно
❓ Когда отправитель блокируется на буферизованном канале
Anonymous Poll
4%
Всегда, до момента чтения значения
89%
Только если буфер заполнен
3%
Никогда
5%
Только при размере буфера 1
❓ Как ведёт себя получатель в буферизованном канале
Anonymous Poll
10%
Никогда не блокируется
69%
Блокируется, если буфер пуст
19%
Блокируется, только если буфер полон
2%
Блокируется всегда
❓ Где хранится содержимое буфера буферизованного канала
Anonymous Poll
14%
В стеке отправителя
6%
В стеке получателя
70%
В кольцевом буфере внутри структуры hchan
15%
В глобальном heap без структуры
❓ Что происходит с данными при небуферизованной передаче, когда есть ожидающий получатель
Anonymous Poll
18%
Копируются в кольцевой буфер и оттуда читаются
5%
Переносятся через глобальную очередь событий
71%
Копируются напрямую между стеками горутин
9%
Перемещаются с помощью memcpy внутри heap
❓ Что произойдёт, если отправить в полный буферизованный канал без конкурентного получателя
Anonymous Poll
6%
Паника
6%
Потеря данных
78%
Блокировка отправителя до освобождения места
19%
Системный deadlock