Уютное сообщество джавистов
1.9K subscribers
36 photos
46 links
Уютное сообщество джавистов - это хорошие материалы,задачки,
туториалы для проверки знаний и обратная связь от соратников по изучению.

@viktorreh
Download Telegram
⌨️ Управление доступом к членам класса

Модификаторы уровня доступа определяют, могут ли другие классы использовать определенное поле или вызывать определенный метод.

Существует 4 уровня доступа:

private
Указывает, что доступ возможен только в его собственном классе.

package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.

protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.

public
Указывает, что доступ возможен отовсюду.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3👍1
🚫 Ключевые проблемы многопоточности

🔵 Состояние гонки (Race Conditions):

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

🔵 Взаимные блокировки (Deadlocks):

Ситуация, когда два или более потока застревают в ожидании друг друга для освобождения ресурсов, что приводит к тупиковой ситуации.
Пример: Два человека держат предметы, которые нужны друг другу, и оба ждут, пока другой первый отдаст свой предмет.

🔵 Ошибки конкуренции (Concurrency Bugs):

Ошибки, возникающие из-за неправильной обработки взаимодействия потоков, часто проявляющиеся как случайные проблемы.
Пример: Если два работника пишут в один и тот же файл без координации, их работа может перемешаться.

🔵 Прерывание потока (Thread Interruption):

Основная проблема заключается в том, что сигнал на прерывание лишь уведомляет поток о необходимости остановки, но сам поток должен обработать этот сигнал и завершить свою работу самостоятельно.
Пример: Если вам нужно, чтобы рабочий остановился, вы посылаете ему сигнал "стоп". Но нет гарантий, что это случится.

🔵 Ошибки согласованности памяти (Memory Consistency Errors):

Ситуация, когда разные потоки имеют устаревшее или несогласованное представление о разделяемой памяти.
Пример: Если один человек обновляет общий документ, а другие видят старую версию, они могут работать с неверной информацией.

🔵 Соперничество за ресурсы (Resource Contention):

Ситуация, когда несколько потоков конкурируют за один и тот же ограниченный ресурс, что приводит к задержкам.
Пример: Если несколько работников одновременно пытаются воспользоваться одним принтером, им приходится ждать своей очереди.

🔵 Голодание (Starvation):

Ситуация, когда потоку постоянно отказывают в доступе к ресурсам из-за приоритета других потоков.
Пример: Если одного работника постоянно обходят вниманием в пользу других, он никогда не сможет выполнить свою работу.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🎉1