Notes about Java 🌴
197 subscribers
41 photos
1 video
3 files
76 links
vk.com/notes_about_java
Научим программировать с нуля!
1. Видео на практике в коде
2. Краткие по времени
3. Очередной урок только на пройденном
4. Понятные аналогии
5. Можно скачать код занятий
@max_urusoff
Download Telegram
#ForkJoinPool #FixedThreadPool #parallelStream #stream
Оказывается работая в параллельной зоне кода в рамках потоков обычного FixedThreadPool при поднятии parallelStream(), например по коллекции, он создаст внутри стрима ещё один ForkJoinPool - и в результате может быть полная каша.
К примеру, если же параллельный стрим стартует внутри потока типа fork join, то такой путаницы из потоков не происходит, потому что при старте параллельного стрима он поймет по типу потока, что уже находится внутри ForkJoinPool и стрим будет работать как обычный последовательный для каждого потока.
На скрине в отладке показана плохая ситуация и видны обычные (не fork join) параллельные потоки, которые пришли в стрим и создали в этом месте fork join потоки по количеству доступных ядер для элементов коллекции.
Вот так.
Эти два типа потоков не "узнают" друг друга в параллельных стримах.
Типа "эй товарищ, ты создаёшь параллельный стрим внутри многопоточности и нечего городить ещё одну многопоточность в себе".
1🤯1