Size: a a a

2020 August 08

АГ

Алексей Гевондян... in PHP
Maksim Masiukevich
на го тоже не надо
ну фишка го же как раз в удобной работе с его пресловутыми горутинами, почему нет?
источник

AM

Artem Molotov in PHP
Алексей Гевондян
2 потока синхронны. т.к. процессор каждый такт чем-то занимается. пустые операции по крайней мере выполняет. а вот сами программы, выполняемые на этих ядрах, могут быть как синхронными, так и асинхронными... как-то так.
Нихера не понял.
источник

MM

Maksim Masiukevich in PHP
Алексей Гевондян
ну фишка го же как раз в удобной работе с его пресловутыми горутинами, почему нет?
снова заставить тебя в гугл пойти?)
сейчас будешь нам рассказывать, как работают горутины)


а если серьёзно, то в голанге всё устроено таким обраом, что человеку банально не нужно знать это. Ну вот даже в теории
источник

AS

Anton Shabouta in PHP
Sergey Zolotov
concurrency - когда есть конкурентность за ресурсы (время цпу)
parallel - возможность работать параллельно в единицу времени, используя доп ядра цпу

в итоге у тебя может быть:
параллельно, но не конкуретно - между потоками задачи не раскидываются и может быть простой
конкуретно, но не параллельно - когда всего 1 цпу, но пачка задач борются за эфир
конкуретно и параллельно - много цпу и между ними шарятся задачи
в общем случае неверно. на х86(-64) с оговорками, да
источник

АГ

Алексей Гевондян... in PHP
Artem Molotov
Нихера не понял.
мешанина понятий "синхронности" в широком смысле и в программистском) поэтому и не понятно, да...
источник

MM

Maksim Masiukevich in PHP
Anton Shabouta
в общем случае неверно. на х86(-64) с оговорками, да
а точнее?
источник

SZ

Sergey Zolotov in PHP
Anton Shabouta
в общем случае неверно. на х86(-64) с оговорками, да
почему?
источник

AM

Artem Molotov in PHP
Алексей Гевондян
мешанина понятий "синхронности" в широком смысле и в программистском) поэтому и не понятно, да...
Я не понял почему 2 потока "синхронны", а программы могут быть асинхронны. Ты имел ввиду создание потоков или что?
источник

A

Aleksandr Khristenko in PHP
Sergey Zolotov
concurrency - когда есть конкурентность за ресурсы (время цпу)
parallel - возможность работать параллельно в единицу времени, используя доп ядра цпу

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

SZ

Sergey Zolotov in PHP
хватит уже пихать в одну плоскость синхронность/асинхронность и потоки/непотоки. это ж неверно изначально и зависит сильно от рантайма
источник

SZ

Sergey Zolotov in PHP
Aleksandr Khristenko
Вообще не совсем согласено. Получается если у нас есть го, где мы на каждый запрос пускаем корутину это будет одновременно и паралельное и конкурентное?
ну го от тебя скрыт пул потоков. но он есть
источник

АГ

Алексей Гевондян... in PHP
Artem Molotov
Я не понял почему 2 потока "синхронны", а программы могут быть асинхронны. Ты имел ввиду создание потоков или что?
в первом случае речь о том, что 2 потока работают одновременно т.е. синхронно. да, крч, пора сворачиваться)
источник

SZ

Sergey Zolotov in PHP
Aleksandr Khristenko
Вообще не совсем согласено. Получается если у нас есть го, где мы на каждый запрос пускаем корутину это будет одновременно и паралельное и конкурентное?
но вообще да, будет как раз конкуретно и параллельно за счет того что твои горутины будут шедулится по разным потокам оси
источник

AM

Artem Molotov in PHP
Алексей Гевондян
в первом случае речь о том, что 2 потока работают одновременно т.е. синхронно. да, крч, пора сворачиваться)
Если они работают "одновременно", то они не синхронны. Синхронны, это когда один за другим.
источник

A

Aleksandr Khristenko in PHP
Sergey Zolotov
ну го от тебя скрыт пул потоков. но он есть
Ну я к тому, что паралельность и конкуренстность отличается семантикой, имхо.
И цель паралельности это разбить одну задачу на несколько подзадач и посчитать их одновременно паралельно, т.е. подзадачи связаны.
А в моем примере с го запросы друг с другом вообще не связаны, т.е. это как раз пример concurrency.
источник

SZ

Sergey Zolotov in PHP
GOMAXPROCS как раз регулирует размер пула потоков, на которые будут шедулится
источник

SZ

Sergey Zolotov in PHP
Aleksandr Khristenko
Ну я к тому, что паралельность и конкуренстность отличается семантикой, имхо.
И цель паралельности это разбить одну задачу на несколько подзадач и посчитать их одновременно паралельно, т.е. подзадачи связаны.
А в моем примере с го запросы друг с другом вообще не связаны, т.е. это как раз пример concurrency.
это ты fork join скорее описываешь
источник

AM

Artem Molotov in PHP
Aleksandr Khristenko
Ну я к тому, что паралельность и конкуренстность отличается семантикой, имхо.
И цель паралельности это разбить одну задачу на несколько подзадач и посчитать их одновременно паралельно, т.е. подзадачи связаны.
А в моем примере с го запросы друг с другом вообще не связаны, т.е. это как раз пример concurrency.
> И цель паралельности это разбить одну задачу на несколько подзадач и посчитать их одновременно паралельно, т.е. подзадачи связаны.

Не согласен. Имхо, параллельными могут быть совершенно разные задачи. Как в одном зале будет танцевать танцор, а в другом делать ремонт строитель.
источник

A

Aleksandr Khristenko in PHP
Artem Molotov
> И цель паралельности это разбить одну задачу на несколько подзадач и посчитать их одновременно паралельно, т.е. подзадачи связаны.

Не согласен. Имхо, параллельными могут быть совершенно разные задачи. Как в одном зале будет танцевать танцор, а в другом делать ремонт строитель.
Ладно, видимо опять проблемы с терминологией. Я имею в виду parallel computing.
источник

AS

Anton Shabouta in PHP
Sergey Zolotov
хватит уже пихать в одну плоскость синхронность/асинхронность и потоки/непотоки. это ж неверно изначально и зависит сильно от рантайма
Вот и ответ. Два ядра никак не обеспечивают параллельность операций на уровне единицы процессора (ибо остается конкурентность чтении/записи регистров (на RISK например) и кэша (тут уже про х86 больше)). Опять же остается всякая экзотика в плане архитектур и ОС. А ну да, еще можно вспомнить занимательные штуки с реальными двух-трех-N процессорными материнками. В моем мире вопросы про конкурентно/параллельно не имеют общего ответа, пока не задана, как минимум, архитектура и ОС
источник