1. Переменную count хочешь быстро заинкрементировать до 10 тыс. В цикле запустил 10 тыс. потоков, которые инкрементят счетчик. Решил сделать синхронизацию. Какой способ выбрать: synchronized или atomic? Почему?
#
2. Как сделать так, если 10 потоков вызывают get() одновременно, ты не создал 10 объектов Singletone?
#
3. Может ли быть, что разные потоки всегда видят актуальное значение переменной, хотя она НЕ помечена volatile?
#
4. Есть статичный метод, в его сигнатуре пишу synchronized. На чем будет происходить синхронизация?
#
5. Есть объект, внутри синхронизированный метод, к которому могут обратиться несколько потоков. Предположите, когда синхронизированный метод не сработает и получим коллизию?
#
6. Пишем генерацию отчета. Мне надо сходить в 4 системы по HTTP и получить данные. Хотим ускорить с помощью многопоточки. Как сделать?
#
7. Есть 5 разных потоков. Есть метод объекта, который потоки хотят плюс-минус одновременно дернуть, но нужно, чтобы дернул только один. Что делать в первую очередь
#
8. На atomic переменной сделали счетчик. Изначально значение переменной 0. Два потока прибавляют 1 одновременно.
#
9. Есть несколько потоков, мы хотим, чтобы они все стартанули одновременно. Как это сделать средствами Java?
#
10. В коде нужно сделать паузу. Нельзя использовать классические способы Thread sleep, wait. Как нам реализовать паузу?
#
11. Нужно сделать систему мониторов, мьютексов, чтобы таски выполнять согласованно. Какой concurrency интерфейс использовать? Методы, классы, интерфейсы, которые предоставляют механизмы блокировок?
#
12. Есть счетчик. Запустили 100 потоков. По итогу у нас будет значение 100?
#
13. В одном потоке перебирается коллекция, а в другом потоке из коллекции что-то удаляется. Что делать, чтобы не было ошибки?
#
14. У хэшмап планируем использовать в качестве некого счетчика для действий пользователя. В качестве ключа у нас пользователь, в качестве значения счетчик. Происходит какое-то событие, мы берем пользователя, добавляем в счетчик плюс один. Таким образом у нас растет событие. Вопрос. Будет ли корректно такая мапа работать в многопоточке?
#
15. Если создать 100 потоков, программа будет выполняться быстрее? Поток идет в центробанк запрашивает валюту и заносит в таблицу. Миллион значений. Если создать 5 потоков и 100 потоков. Что быстрее выполнится?
#
16. Создание потока дорогая операция. Как нам помогает ExecutorService?
#
17. У многопоточки есть 3 параметра. atomicity, visibility, happens-before. Что из этого нам обеспечивает переменная volatile
#
18. Предположим поток ничего не выделяет из памяти. Вообще не обращается к Хипу. Этот поток может жить без Стека?
#
19. Поток который обрабатывает очень большой объекм данных. Поток обращается к данным. Все данные будут закешированы к кеше этого потока?
#
20. Когда присваиваете значение в переменную это атомарное действие?
#
21. Если два потока хотят синхронизироваться, какой объект они могут использовать в качестве монитора?
#
22. Если 10 потоков, которые пришли в synchronize, кто из них первый попадет в Lock
#
23. Есть потоки. Вы стартуете на каждую задачу либо сделали threadPool или Executor. У вас ограниченное количество потоков. С точки зрения вычислений это более эффективно или просто удобно?
#
24. Как написать асинхронное приложение. Как одновременно запустить две функции и дождаться их выполнения. Например, есть getTotalPrice и getBonusRubbles. Надо вычесть их в конце. Как это сделать?
#
25. В чем отличие несинхронной обработки запроса и неблокирующей реактивной обработки?
#
26. Почему в многопоточной среде выполнения из коллекции ArrayList может выброситься ConcurrentModificationException. Как это пофиксить?
#
27. Если создали в main новый поток и запустили, какой приоритет будет у потока?
#
28. Пишу код, хочу использовать чужой класс. Мой участок кода будет исполняться многопоточно. Как понять, что чужой класс будет нормально работать в многопоточной среде? Чужой класс - это Registry, там обычная HashMap, в которую что-то складываем, потом что-то достаем
#
29. Хотим вызвать три метода в параллель, объединить результаты которые они выдадут и вызвать из своего метода? Каждый из методов возвращает Set.
#
30. Создаем на Spring Initializer простое Spring Boot приложение, добавив в него всего один компонент Web. И создадим один контроллер, в рамках которого создадим один метод. Это приложение будет однопоточным или многопоточным?
#
31. Как считаете, это безопасно с точки зрения потоков, что дефолтный скоуп Singleton, а кругом многопоточка?
#
33. Хотим вызывать три метода в параллель, объединить результаты и вернуть из своего метода. Как такое реализовать?
#
34. Есть класс Thread, в нем есть статический метод sleep(). В Sleep можем передать временное значение. У каждого объекта в Java есть метод wait(). Чем отличаются эти два метода?
#
35. Когда выполняли notifyAll и все потоки пробудились, какой поток будет выполняться?
#
36. Как проверить, что именно 20 потоков прошло через блок кода?
#