
Мерлин
29.04.2018
19:01:31

Mayor
29.04.2018
19:01:32

Gleb
29.04.2018
19:01:46
Классы типов
Даже если бы умело, то в чем профит в их дополнительных абстракциях?
Есть же корутины с минимальным перформанс оверхедом в языке.

Google

Bogdan
29.04.2018
19:01:49

Mayor
29.04.2018
19:01:53
Ну не одним может, но не 1000
Да
Твой компьютер не может одновременно выполнять 1000 задач

Bogdan
29.04.2018
19:02:20
так мне кажетс пора срачь заканчивать

Mayor
29.04.2018
19:02:22
Это все равно будет поочередно
все равно в 1000 потоках будет внутри очередь

Igor
29.04.2018
19:02:50

Даниил
29.04.2018
19:03:25
про reply согласен

Bogdan
29.04.2018
19:04:26

Даниил
29.04.2018
19:04:33
для таких вещей и существуют тредпулы, чтобы распределять имеющиеся n потоков

Google

Mayor
29.04.2018
19:04:37

Vitaly
29.04.2018
19:05:56
ассинхронно = многопоточно
В каком смысле?
https://ru.stackoverflow.com/questions/445768/Многопоточное-vs-асинхронное-программирование

Mayor
29.04.2018
19:06:28
та по идее и между двумя тредами может быть внутри очередь
ибо треды есть в других процессах
и если их будет достаточно много, то идеально ассинхронно 2 треда в твоей программе работать не будут

Мерлин
29.04.2018
19:08:46
вот вроде слова по отдельности понятные, но вместе совершенная каша
какие очереди
какие треды в процессах
что такое идеальная асинхронность
почему два треда
с чего вообще асинхронность — это многопоточность

Даниил
29.04.2018
19:09:33

Мерлин
29.04.2018
19:09:46

Берял
29.04.2018
19:09:50

Даниил
29.04.2018
19:09:55
это было @mayor, не тебе в общем, сорян

Mayor
29.04.2018
19:10:04
это основное

Bogdan
29.04.2018
19:10:47

Mayor
29.04.2018
19:11:17
да много чо, но все же основное веб и иос

Bogdan
29.04.2018
19:11:32
все вопросы отпали

Mayor
29.04.2018
19:12:56
и ты создаешь 2 таких потока
разница в одинаковости наполнения будет?

Google

Мерлин
29.04.2018
19:15:38
асинхронность — это прежде всего возможность прервать выполнение потока инструкций и переключится на другое место программы. Потом ещё возможность неблокирующего ввода вывода и прочая мишура
многопоточность — это возможность исполнения одновременно больше одного потока команд
это совершенно ортогональные понятия
бывает асинхронность без многопоточности (node js, python+asyncio)
бывает многопоточность без асинхронности (классический подход, особенно cpp)
бывает набор набор асинхронно выполняемых задач поверх пула потоков (go, kt, rust+tokio и прочие современные языки)
а можно разложить синхронно исполняемые задачи поверх пула потоков (привет, GIL)

Mayor
29.04.2018
19:17:02
асинхронность — это прежде всего возможность прервать выполнение потока инструкций и переключится на другое место программы. Потом ещё возможность неблокирующего ввода вывода и прочая мишура
То есть по твоему именно это - основное в ассинхронности?

Bogdan
29.04.2018
19:17:34
а что по твойму?
может мы гения не заприметили

Мерлин
29.04.2018
19:17:48
более того, бывают терминальные случаи асинхронности, но с блокирующим io — корутины в lua

Mayor
29.04.2018
19:19:16

Мерлин
29.04.2018
19:19:32
те же продолжения в MIT lisp

Mayor
29.04.2018
19:24:49
то есть многопоточность не дает возможности прерывания работы?

Мерлин
29.04.2018
19:25:21
разница в одинаковости наполнения будет?
зависит от кучи факторов
от количества ядер процессора
от алгоритма работы планировщика и аллокатора оси (например, work stealing тупо раскидает по ядрам все потоки, а есть вариант с жадным распределением)
от особенностей рантайма (наличие GIL как минимум)

Mayor
29.04.2018
19:25:24
ок, пусть не 1000 а 10000
Основной принцип многопоточности не обязательно будет работать

Мерлин
29.04.2018
19:27:26

Mayor
29.04.2018
19:27:52
смотря что ты имеешь ввиду под общим случаем, и почему именно это - общий случай

Google

Мерлин
29.04.2018
19:29:14

Mayor
29.04.2018
19:30:26

Мерлин
29.04.2018
19:32:17
,
Это зависит от условий работы вычислительной системы
В системах релаьного времени будут исполняться одновременно столько потоков, сколько есть свободных ядер
В обычных — зависит от погоды на юпитере

Mayor
29.04.2018
19:32:50
шо
шл за обычные?

Мерлин
29.04.2018
19:34:21
шл за обычные?
большая часть ОСей которые нас окружают — не ОСи реального времени
если поток прерывает исполнение, то это происходит на не гарантированный промежуток времени

Admin
ERROR: S client not available

Mayor
29.04.2018
19:35:02
прервывает на не гарантированный промежуток времени что?

Мерлин
29.04.2018
19:35:11
поток

Mayor
29.04.2018
19:35:15
илм прерывается на не гарантированном промежутке

Konstantine
29.04.2018
20:03:43
Такой вопрос. Я просто не могу в голове понять, может кто объяснит. Зачем нужно кому-то совмещать в приложении и RxJava (которая легко поддается многопоточности) и корутины? Вернее так, если у человека уже есть рх в приложении, зачем ему тянуть корутины?

Тимур
29.04.2018
20:17:05
на корутинах код проще
если rx нужен только для того, чтобы организовывать асинхронность через коллбеки, то imho можно ее спокойно выкинуть и пользоваться корутинами

Quantum Harmonizer
29.04.2018
20:20:38
Rx нужен для того чтобы раскладывать цепочки событий и их обработку по потокам, ИМХО

Виталий
29.04.2018
20:46:10
Не подскажите как избавиться от #iterator() cannot be used nested. во вложеных циклах ? Если делаю for с индексами то начинает материться что не может кастануть.
https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils/ArrayMap.java
https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils/Array.java
в этом Array пробегаюсь по цикла ArrayMap классов приведенных выше

Тимур
29.04.2018
20:51:30
Rx нужен для того чтобы раскладывать цепочки событий и их обработку по потокам, ИМХО
Когда нужны именно события, тогда да.
Но иногда события появляются не от хорошей жизни, а только потому, что надо как то организовать асинхронность.
И корутины помогают "выпрямить" такой код. Вместо событийно ориентированного он превращается в простой последовательный, где уже нет никаких событий и обработчиков, а есть простая императивная пошаговая логика: сделали раз, сделали два, сделали три.

Quantum Harmonizer
29.04.2018
20:51:53

Тимур
29.04.2018
20:52:22
ну да, если он только для этого, то не нужен

Google

Блаженный
30.04.2018
01:04:01
Если в котлине есть корутины, то смысла в vertx.io нет?

Artem
30.04.2018
03:35:39
есть способ померять память занимаемую корутинами? есть suspend fun хочется замерить объем памяти, который выделяется при её вызове. Только через java.lang.Runtime.freeMemory?

Bogdan
30.04.2018
04:49:08

Artem
30.04.2018
04:50:37
?

Boris
30.04.2018
06:09:53

Artem
30.04.2018
06:10:51
ок, примерно понял о чем речь

Quantum Harmonizer
30.04.2018
07:00:14
Создать корутины до наступления ООМ, измерить их количество.
Сравнить с количеством чего-то аналогичного.

Алексей
30.04.2018
11:45:35
Вставил код на java в IDE. IntelliJ IDEA перевела его в котлин. Но в импортах показано вот это
Как добавить JSON?

Gleb
30.04.2018
12:00:10
import JSON

Алексей
30.04.2018
12:01:09
все равно показано красным
)

Gleb
30.04.2018
12:02:17
https://mvnrepository.com/artifact/org.json/json/20180130

Anton
30.04.2018
12:12:48

Artem
30.04.2018
12:13:13

Anton
30.04.2018
12:14:42
спасибо
Есть доклад от Андрея Пангина по этой теме на Ютубе.

Алексей
30.04.2018
12:20:00