Size: a a a

2020 September 13

AA

Albert Abdullin in learn.java
В теории же ос может их по разным ядрам запустить?
источник

КХ

Константин Хатунцев... in learn.java
если ты так организовал свой код, что его можно запускать одновременно в нескольких потоках, и в машине есть несколько логических CPU то планировщик ОС раскидает твои потоки по нескольким ядрам.
источник

AA

Albert Abdullin in learn.java
Vadim
2 потока и на 1 ядре можешь запустить, значит то может ли выполнятся паралелльно от кол-ва ядер не зависит, от этого только зависит будет ли от этого польза
Когда на одном ядре два потока - это асинхронное выполнение. А я о другом немножко спрашивал
источник

AA

Albert Abdullin in learn.java
Константин Хатунцев
если ты так организовал свой код, что его можно запускать одновременно в нескольких потоках, и в машине есть несколько логических CPU то планировщик ОС раскидает твои потоки по нескольким ядрам.
Ну значит это параллельные вычисления?
источник

V

Vadim in learn.java
Albert Abdullin
Когда на одном ядре два потока - это асинхронное выполнение. А я о другом немножко спрашивал
с чего это асинхронное? как напишешь, такое и будет
источник

SG

Sergey Grushin in learn.java
Константин Хатунцев
если ты так организовал свой код, что его можно запускать одновременно в нескольких потоках, и в машине есть несколько логических CPU то планировщик ОС раскидает твои потоки по нескольким ядрам.
Но вот @Cloud66 говорит, что ядро может и несколько потоков запускать
источник

AA

Albert Abdullin in learn.java
Константин Хатунцев
если ты так организовал свой код, что его можно запускать одновременно в нескольких потоках, и в машине есть несколько логических CPU то планировщик ОС раскидает твои потоки по нескольким ядрам.
В джава нет такого механизма же? Ты просто создаёшь потоки и ос сама ими дальше рулит. Но она, в теории, может их засунуть по разным ядрам, если они есть. Верно же?
источник

И

Иλьямбда in learn.java
Albert Abdullin
Ребята. Я правильно понимаю, что если на процессоре установлено несколько ядер, то вычисления могут выполняться параллельно?
Может даже если ядро всего одно, если гипертрединг есть и не выключен
источник

SG

Sergey Grushin in learn.java
Albert Abdullin
В джава нет такого механизма же? Ты просто создаёшь потоки и ос сама ими дальше рулит. Но она, в теории, может их засунуть по разным ядрам, если они есть. Верно же?
Почему? Можно запустить кол-во потоков равное доступному количеству ядер и синхронизировать их
источник

КХ

Константин Хатунцев... in learn.java
если интересно про планировщик
https://www.youtube.com/watch?v=PvvbtG2nflw

Java Concurrency
https://www.baeldung.com/java-concurrency
источник

AA

Albert Abdullin in learn.java
Sergey Grushin
Почему? Можно запустить кол-во потоков равное доступному количеству ядер и синхронизировать их
Можно но ты не может написать на джава такой код, который скажет, что этот программный поток запустить на одном ядре, а второй на другом
источник

AA

Albert Abdullin in learn.java
Это решает ос
источник

SG

Sergey Grushin in learn.java
Albert Abdullin
Можно но ты не может написать на джава такой код, который скажет, что этот программный поток запустить на одном ядре, а второй на другом
Ах ты, опять забыл про это. А как тогда?
источник

AA

Albert Abdullin in learn.java
Sergey Grushin
Ах ты, опять забыл про это. А как тогда?
Блин. Я сюда за ответами пришел, а не сам объяснять. Я сам толком не знаю
источник

AA

Albert Abdullin in learn.java
Я захожу в диспетчер задач и вижу там два логических процессора и 1100 с лишним потоков. Поэтому и подумал, сто здесь все таки в теории могут происходить параллельные вычисления
источник

AE

Alexey Ermakov in learn.java
Albert Abdullin
Я захожу в диспетчер задач и вижу там два логических процессора и 1100 с лишним потоков. Поэтому и подумал, сто здесь все таки в теории могут происходить параллельные вычисления
логических?
ht для одноядерного процессора что ли?
источник

AA

Albert Abdullin in learn.java
У меня Intel core 2 duo
источник

IV

Ihor Volokhovych in learn.java
Albert Abdullin
У меня Intel core 2 duo
Ф.
источник

КХ

Константин Хатунцев... in learn.java
там есть
isolcpus и taskset

https://www.looklinux.com/how-to-run-process-or-program-on-specific-cpu-cores-in-linux/

соответственно можно попросить планировщик не ставить на исполнение на указанных CPU другие задачи, а потом запустить свой процесс на этих выделенных CPU
источник

AE

Alexey Ermakov in learn.java
Albert Abdullin
У меня Intel core 2 duo
физически обычно проц один (железка)
там 2-N ядер физических ядер

intel ht/amd smt - ядра*2 логические - это не совсем "честная" параллельность уже

ос сама решит, куда какие треды раскидать
обычно не стОит стараться быть умнее ос и позволить ей самой всё решить

ну или разбираться в ядре и его Си-диалекте :)
источник