bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

Библиотека Java разработчика

Коллеги, приглашаем вас на вебинар, где Валерий Харисов расскажет о том, как искать и находить неочевидные утечки исходного кода и содержащихся в них секретов.
🕚 29 июня в 15:00 (МСК)

Leak-Search — сервис сканирования публичных репозиториев на наличие утечек исходного кода, конфигураций и конфиденциальных данных компании.
Разработан и поддерживается командой по ИБ группы компаний QIWI

👨‍💻На вебинаре рассмотрим:

- как программный код и секреты компании попадают в сеть
- какие векторы утечек часто остаются вне фокуса
- сколько это может стоить бизнесу
- и главное, как не стать жертвой утечки данных

Все на реальных кейсах крупнейших российских и зарубежных компаний, утечки которых были найдены с помощью Leak-Search, либо известны публично.

Для участия на вебинаре зарегистрируйтесь по ссылке
https://link.webinar.fm/register/55392181/7xyczjsv

🕚Ждем вас 29 июня в 15:00 (МСК)

❗️На вебинаре вы получите доступ к пробному периоду❗️

Читать полностью…

Библиотека Java разработчика

🤪 Если вы пишете приложения на Java и выбираете архитектуру между монолитной и микросервисной, то курс «Микросервисы и API на Java и Kotlin» для вас!

Мы убеждены, что разрабатывать микросервисы интереснее, а работать с ними — проще! Почему?

✔️ Легче ловить сбои и приводить приложение в порядок
✔️ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему
✔️ Разные микросервисы — разные технологии разработки
✔️ Можно обновлять приложение по отдельным частям

Все эти темы и многие другие мы разбираем на курсе по микросервисам на Java.

🤑 И чтобы было легче вкатиться в занятия, мы дарим вам два бесплатных демо-урока. На них мы разберём отличия монолита от микросервиса, в каких условиях стоит выбирать ту или иную архитектуру ПО.

Переходите по ссылке и забирайте уроки, эти знания вам точно пригодятся в работе! Бесплатные уроки можно получить тут.

Читать полностью…

Библиотека Java разработчика

Что такое пакет? Перечислите различные преимущества пакетов.

Пакеты — это набор связанных классов и интерфейсов, которые связаны вместе. Используя пакеты, разработчики могут легко модулировать код и оптимизировать его повторное использование. Кроме того, код внутри пакетов может быть импортирован другими классами и использован повторно. Несколько его преимуществ:
• Пакеты на Java помогают избежать конфликтов имен.
• Они обеспечивают более легкий контроль доступа к коду.
• Пакеты также могут содержать скрытые классы, которые не видны внешним классам и используются только внутри пакета..
• Создает правильную иерархическую структуру, которая упрощает поиск связанных классов.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Проблема квадрата/прямоугольника, объяснение и решение

В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.

https://www.youtube.com/watch?v=AILeiAJY_78


👉@BookJava

Читать полностью…

Библиотека Java разработчика

Мечтали о космосе, а работаете в опенспейсе?

Мы тоже… Но мечты же должны сбываться! Поэтому мы создали свои мультивселенные и решили провести там настоящие соревнования по спортивному хакингу IT’s Tinkoff CTF.

Путешественников ждут 30 порталов в новые измерения. Там предстоит пройти миссии, набрать максимальное количество баллов и, конечно, разгадать все пасхалки.

Задания будут интересны разработчикам, SRE- и QA-инженерам, аналитикам и другим ИТ-специалистам. А еще вы сможете потренироваться на тестовых заданиях и выбрать лигу по своим скиллам.

Лучшим командам — вселенский почет и денежные призы до 360 000 рублей!

Покорять мультивселенные отправимся 15 и 16 июля. Участвовать можно онлайн и очно в 14 ИТ-хабах Тинькофф по всей России. Офлайн-участников ждут квизы, настолки, крутой мерч и нетворкинг с экспертами.

🚀Переходите на IT’s Tinkoff CTF, читайте подробности и регистрируйтесь!

Да пребудут с вами силы мультивселенной капибары!
(Упс… кажется, мы спалили первую пасхалку, Хьюстон)

Ерид: LdtCKZmzw

Читать полностью…

Библиотека Java разработчика

Шпаргалка по Java

https://www.codewithharry.com/blogpost/java-cheatsheet/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Отличие интерфейса Runnable и Callable?

• Интерфейс Runnable появился в Java 1.0, а интерфейс Callable был введен в Java 5.0 в составе библиотеки java.util.concurrent;
• Классы, реализующие интерфейс Runnable для выполнения задачи должны реализовывать метод run(). Классы, реализующие интерфейс Callable - метод call();
• Метод Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
Метод run() не может выбрасывать проверяемые исключения, в то время как метод call() может.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

⁉️ Как упросить структуру Java-приложения?

♨️ Узнаем 21 июня в 20:00 на открытом уроке «Конечные автоматы».

Вебинар приурочен к старту онлайн-курса «Java Developer. Professional» в OTUS.
Занятие проведет Сергей Петрелевич, Java-разработчиком с 20-летним стажем.

📢📢 На уроке мы посмотрим, как с помощью конечных автоматов можно существенно упростить структуру приложения и избавиться от кучи if-ов, размазанных тонким слоем по всему приложению.

🔵Не упустите возможность протестировать формат обучения! Больше полезного ждет вас на курсе, который можно оплатить любым удобным способом.

👉 Для участия зарегистрируйтесь и пройдите тест: https://otus.pw/ARxZ/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

SOLID в деталях: Принцип открытости/закрытости

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Зачем нужен протокол HTTP? Узнайте на открытом уроке «Основы протокола HTTP», который состоится 🗓 15 июня в 20:00 мск в OTUS!

На занятие мы:
- углубимся в историю этого протокола,
- разберем его до мельчайших деталей,
- изучим работу HTTPS,
- немного коснемся HTTP-серверов и REST

Встречу проведет 👨‍💻 Никита Сапогов — руководитель backend-разработки в Ситилинк.

👉 Чтобы записаться на урок, пройдите вступительное тестирование — https://otus.pw/MNzA/

Больше полезных навыков будет ждать вас на онлайн-курсе OTUS «Highload Architect». Курс можно приобрести удобным для вас способом.

Реклама. Информация о рекламодателе на сайте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Сопоставление с шаблоном в Java — 5 примеров для занятых разработчиков

Будучи занятым разработчиком, трудно следить за новыми возможностями и глубоко понимать, где и как их можно использовать.

В этой статье блога я расскажу о 5 местах, где вы можете использовать сопоставление с шаблоном в Java, не погружаясь в тонкие детали. Когда вы решите, что готовы к дальнейшему изучению, посмотрите ссылки, включенные в эту статью.

Rus https://habr.com/ru/articles/719384/

Eng https://blog.jetbrains.com/idea/2023/02/pattern-matching-in-java-5-examples-for-busy-developers/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Вопросы для собеседования на Java Developer

https://github.com/enhorse/java-interview/blob/master/README.md

👉@BookJava

Читать полностью…

Библиотека Java разработчика

SOLID в деталях: Принцип единственной ответственности

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Вопросы с senior java интервью [3/3]

Тайм-коды:
0:00 - Вступление
0:15 - Содержание этого выпуска
0:42 - Обратная связь
1:07 - Как устроено это видео
1:32 - Параллельные стримы, когда они не параллельные
2:29 - Что будет при падаении операции
3:15 - Блокировки, synchronized, ReadWriteLocks, atomics
3:39 - Когда выбрать Lock
3:56 - Когда выбирать synchronized
4:25 - Когда выбирать ReadWriteLock
5:13 - Когда выбирать Atomic
5:47 - Happens before, концепция, что значит простыми словами
6:20 - Запись в final, начало потока
7:57 - Большой раздел про дедлоки
8:07 - Простейший способ получить дедлок
8:56 - Thread dump для поиска дедлоков
10:00 - Простейший анализ дампа
11:30 - Получение дедлока на CyclicBarrier
12:21 - Запаркованные треды
13:35 - Как делать вложенные блокировки правильно
14:15 - Захват вложенных блокировок через tryLock, возможный механизм предотвращения дедлока
15:34 - Ввод вывод в java. IO и NIO, различия
16:40 - Про работу с HTTP клиентами
17:05 - Про RestTemplate, самое важное что надо знать
17:44 - Про мониторинг RestTemplate
18:12 - Про разгон Http клиента, keepAlive
18:46 - Пулл потоков для клиента
19:30 - Рассказываю реальную проблему при плохой настройке
20:40 - Хитрости прокси (Spring AOP)
20:50 - Циклические зависимости - это плохо, но как это работает
22:52 - Сочетание нескольких прокси Async + Transactional, какое правило надо знать
26:40 - Вопросы на общие темы
26:50 - Какие проблемы можно встретить в логировании
27:40 - Как не завалить внешнюю систему логами
28:45 - Реальный вопрос про реализацию собственного кэша
29:35 - Проблема сампоисных кэшей
31:32 - Какие готовые решения есть для кэша, как разорвать этот вопрос
33:08 - Как вам идея для бесплатного курса по проектированию API

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Sealed классы Java в действии: создание надежных и безопасных приложений

Sealed (закрытые или запечатанные) классы были представлены в Java 15 в качестве способа ограничить иерархию наследования класса или интерфейса.

Sealed класс или интерфейс ограничивает набор классов, которые могут наследовать или реализовывать его, что может помочь предотвратить потенциальные ошибки и сделать код более удобным в сопровождении.

https://foojay.io/today/java-sealed-classes-in-action-building-robust-and-secure-applications/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

План подготовки к собеседованию на позицию Java разработчика

Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.

И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.

https://habr.com/ru/articles/473872/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Шпаргалка по паттернам проектирования

👉@BookJava

Читать полностью…

Библиотека Java разработчика

⚡️ Пройди тест по Java ⚡️

💣 Все, кто успешно пройдет тест, получат доступ к записям открытых уроков курса для знакомства с форматом обучения и спец.цену на курс.

Что даст обучение на курсе:
- Сможете создавать современные java-приложения
- Поймете основы функционирования JVM (сборка мусора, byteCode)
- Освоите приемы применения многопоточности.
- Самостоятельно решать задачи уровня Middle+

📌ПРОЙТИ ТЕСТ - https://otus.pw/VlGLx/

💪🏻Хочешь протестировать учебный процесс заранее? Регистрируйся на бесплатное демо-занятие:

📢📢 Регистрация на вебинар 21 Июня в 20:00 - «Конечные автоматы»

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Spring Security в деталях

Аутентификация - Spring Security в деталях
Получение информации о пользователе - Spring Security в деталях
Ещё один способ получения аутентифицированного пользователя #java #springsecurity
Точки входа аутентификации - Spring Security в деталях
Источники информации о пользователях - Spring Security в деталях
Устаревшие DSL в Spring Security 6.1
Отладка контекста безопасности - Spring Security в деталях
DSL и конфигураторы контекста безопасности - Spring Security в деталях
Фильтры безопасности - Spring Security в деталях

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Подборка GitHub-репозиториев для Java-разработчиков

Java Design Patterns - то типовые и повторно используемые шаблоны для решения частых проблем в проектировании приложений.
https://github.com/iluwatar/java-design-patterns


Realworld – это GitHub-репозиторий, с которым нужно ознакомиться всем разработчикам, особенно Full-stack.
https://github.com/gothinkster/realworld

Algorithms - правильные алгоритмы позволяют улучшить производительность приложения.
https://github.com/TheAlgorithms/Java

Awesome Java - есть практически все по Java, а сам материал подается в форме справочника.
https://github.com/akullpp/awesome-java

RxJava Android Samples – это реализация Java ReactiveX, в которой реактивное программирование предлагается через наблюдаемые объекты (Observables).
https://github.com/kaushikgopal/RxJava-Android-Samples

👉@BookJava

Читать полностью…

Библиотека Java разработчика

❗️ Хотите создавать мощные веб-сервисы с помощью функционального программирования?

📣 Присоединяйтесь 22 июня в 20:00 к открытому уроку «Скрещиваем http4s и ZIO».

Встречу проведет Алексей Воронец, руководитель разработки в NAUMEN, в рамках старта нового потока онлайн-курса «Scala-разработчик» в OTUS.

📌 На занятии мы:
- Узнаем oб основных компонентах REST-сервиса;
- Сформируем представление о http4s (http-библиотека) и ZIO (библиотека асинхронного функционального эффекта);
- Попрактикуемся в создании полноценного простого http-сервиса (сервер, эндпоинты, логика).

➡️ Регистрация на вебинар: https://otus.pw/oF1L/

Читать полностью…

Библиотека Java разработчика

Объясните разницу между Linkedlist и Arraylist.

ArrayList — это реализация интерфейса List, основанная на массиве. ArrayList внутренне обрабатывает изменение размера этого массива при добавлении или удалении элементов. Вы можете получить доступ к его элементам за константное время по их индексу в массиве. Однако вставка или удаление элемента подразумевает сдвиг всех последующих элементов, что может быть медленным, если массив огромен, а вставленный или удаленный элемент находится близко к началу списка.

LinkedList — это двусвязный список: отдельные элементы помещаются в объекты Node (узел), которые имеют ссылки на предыдущий и следующий Node. Эта реализация может оказаться более эффективной, чем ArrayList, если у вас много вставок или удалений в разных частях списка, особенно если список большой.

Однако в большинстве случаев ArrayList превосходит LinkedList. Даже перемещение элементов в ArrayList, хотя и является операцией O(n), реализовано в виде очень быстрого вызова System.arraycopy(). Это может даже оказаться быстрее, чем O(1) вставка в LinkedList, которая требует создания экземпляра объекта Node и обновления нескольких ссылок под капотом. LinkedList также может иметь большие накладные расходы памяти из-за создания нескольких небольших Node объектов.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Java EE to Jakarta EE 10 Recipes: A Problem-Solution Approach for Enterprise Java 3rd Edition
Автор: Josh Juneau (2022)

Примеры в этой книге подчеркивают возможности Jakarta EE, помогая вам создавать оптимизированные и надежные приложения с использованием новейших технологий Java. Книга построена по принципу "проблема-решение", когда каждый раздел представляет распространенную проблему программирования и показывает, как решить эту проблему наилучшим образом, используя новейшие возможности Jakarta EE. Решения представлены в виде рабочих примеров кода, которые вы можете загрузить и сразу же использовать в своих собственных проектах. Даются четкие описания, которые помогут вам понять и научиться строить дальнейшие решения.

Скачать

👉 @java_360

Читать полностью…

Библиотека Java разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux


/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика

/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике

/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Чат программистов📌
/channel/developers_ru

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике

Excel лайфхак📌
/channel/Excel_lifehack

Читать полностью…

Библиотека Java разработчика

Продвинутый GraphQL со Spring Boot

В этой статье вы узнаете, как использовать Spring for GraphQL в своем приложении Spring Boot.

Spring for GraphQL — относительно новый проект. Версия 1.0 была выпущена несколько месяцев назад. До этого релиза нам приходилось подключать сторонние библиотеки, чтобы упростить реализацию GraphQL в приложении Spring Boot. Я уже описал два альтернативных решения в своих предыдущих статьях. В следующей статье вы узнаете о проекте GraphQL Java Kickstart. В другой статье вы увидите, как создавать более сложные запросы GraphQL с помощью библиотеки Netflix DGS.

Мы будем использовать очень похожую схему и модель сущностей, как и в этих двух статьях о Spring Boot и GraphQL.

Rus https://habr.com/ru/articles/720360/

Eng https://piotrminkowski.com/2023/01/18/an-advanced-graphql-with-spring-boot/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🔥Хардкорный тест по Java🔥

🤖Готов выбрать светлую сторону силы, юный падаван? Пройди тест из 20 вопроса и испытай себя, сможешь сдать — пройдёшь на продвинутый онлайн-курс «Java Developer. Professional» от OTUS со скидкой!

🦸🏼‍♂️Компании-партнеры ждут, когда ты овладеешь этим мастерством. Проходи вступительный тест и помни большая сила — большая ответственность!

📌ПРОЙТИ ТЕСТ - https://otus.pw/VlGLx/

💪🏻Хочешь протестировать учебный процесс заранее? Регистрируйся на бесплатное демо-занятие:

🔸 Регистрация на вебинар 21 Июня в 20:00 - «Конечные автоматы»

Регистрируйся сейчас - напомним в день вебинара!

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Яндекс Практикум запустил бесплатный курс “Основы работы с Git”. Вы сможете полностью освоить популярную систему контроля версий кода за 20 часов.

Курс будет полезен тем, кто только погружается в разработку, и тем, кто не первый год пишет код:
— новички освоят инструменты, которые точно пригодятся в профессии;
— знатоки структурируют знания и повысят свою продуктивность.

На курсе вы научитесь:
— Писать код вместе с другими разработчиками и разработчицами;
— Отменять и откладывать изменения в своих ветках;
— Использовать локальный и удалённый репозиторий;
— Соединять ветки и разрешать конфликты;
— Управлять репозиторием через IDE и консоль;
— Понимать принципы и культуру командной разработки.

И освоите необходимые инструменты и технологии:
— GitHub;
— Terminal;
— GitHub Desktop;
— Bitbucket;
— GitBash;
— GitLab.

Переходите по ссылке и начинайте заниматься уже сейчас.

Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8KCT9Y

Читать полностью…

Библиотека Java разработчика

🤔 Зачем Scala-разработчику разбираться в функциональном дизайне и каково его практическое применение?

Об этом на открытом уроке расскажет Алексей Воронец, руководитель разработки в NAUMEN.

🗓 Занятие пройдет 8 июня в 20:00 в рамках онлайн-курса OTUS «Scala-разработчик».

На этой встрече мы:

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

👉 Чтобы записаться на открытый урок, пройдите вступительный тест.

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Погрузиться в мир Javа и написать свою первую программу? Уже через 14 дней подготовительного курса!

✔️ Даем крепкие базовые знания Javа, с ними легко продолжить обучение и влиться в профессию.
✔️ Учим не только писать, но и понимать код.
✔️ Опытный наставник всегда поможет и подскажет.

🗓 Начало 6 июня!

🔜 Запишитесь прямо сейчас! —> https://ru.hexlet.io/link/0a9C4f

Читать полностью…

Библиотека Java разработчика

Чем отличается процесс от потока?

Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.

Для каждого процесса ОС создает так называемое «виртуальное адресное пространство», к которому процесс имеет прямой доступ. Это пространство принадлежит процессу, содержит только его данные и находится в полном его распоряжении. Операционная система же отвечает за то, как виртуальное пространство процесса проецируется на физическую память.

Поток(thread) — определенный способ выполнения процесса, определяющий последовательность исполнения кода в процессе. Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах. Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах. Так как потоки расходуют существенно меньше ресурсов, чем процессы, в процессе выполнения работы выгоднее создавать дополнительные потоки и избегать создания новых процессов.

👉@BookJava

Читать полностью…
Subscribe to a channel