
Алексей
25.06.2018
17:23:40
я не знаю почему, но это реально дурацкое решение

Nikolay
25.06.2018
17:23:42

Alex
25.06.2018
17:23:47

Aragaer
25.06.2018
17:23:57
при желании можно сделать

Google

Nikolay
25.06.2018
17:24:01

Алексей
25.06.2018
17:24:03

Nikolay
25.06.2018
17:24:18

Алексей
25.06.2018
17:24:24
типа я не могу сделать два инстанса питона в одном процессе?

Nikolay
25.06.2018
17:24:35

Alex
25.06.2018
17:24:37
шо?

Алексей
25.06.2018
17:24:43
вот кого за это винить?

Nikolay
25.06.2018
17:25:00

Алексей
25.06.2018
17:25:01
с питоном то ладно, у него какие-никакие потоки есть

Alex
25.06.2018
17:25:05
гхм... а зачем?

Nikolay
25.06.2018
17:25:06
ты не один такой

Denis
25.06.2018
17:25:13

Tishka17
25.06.2018
17:25:13

Google

Алексей
25.06.2018
17:25:18
но вот в v8 зачем так сделали непонятно вообще

Aragaer
25.06.2018
17:25:36

Nikolay
25.06.2018
17:25:45
гхм... а зачем?
ну, можно было бы запускать по интерпретатору на поток, а дальше выкинуть GIL... но это утопия

Aragaer
25.06.2018
17:25:49
разные наборы флагов при создании

Tishka17
25.06.2018
17:26:16

Alex
25.06.2018
17:26:23

Nikolay
25.06.2018
17:26:30

Aragaer
25.06.2018
17:26:39
не, я не про то
что именно аллокейтится задается флагами

Nikolay
25.06.2018
17:26:55

Алексей
25.06.2018
17:27:03

Alex
25.06.2018
17:27:04
он о том что процессы и потоки в линуксе реализуются почти одинаково

Aragaer
25.06.2018
17:27:13
с одним флагом ты получишь "тред", с другим "процесс", а с третьим вообще что-то невообразимое

Alex
25.06.2018
17:27:21
через вызов сисколла clone()

Nikolay
25.06.2018
17:27:27

Aragaer
25.06.2018
17:27:37
они оба внутри используют clone
с разным набором флагов

Nikolay
25.06.2018
17:27:51

Alex
25.06.2018
17:28:17
оверхед при создании процесс в копировании таблицы страниц.

Denis
25.06.2018
17:28:20

Google

Алексей
25.06.2018
17:28:30
хотя кстати я читал, что нода вроде позволяет относительно безболезненно поменять движок

Alex
25.06.2018
17:28:36

Nikolay
25.06.2018
17:28:38

Aragaer
25.06.2018
17:28:41
его может не быть - таблица страниц может быть подготовлена заранее
даже не так, она все равно будет сделана
просто в случае "процесса" там будет copy-on-write флаг проставлен

Nikolay
25.06.2018
17:29:02

Алексей
25.06.2018
17:29:07
во во

Denis
25.06.2018
17:29:09

Nikolay
25.06.2018
17:29:14
но тут чужой мир, я не знаю деталей
и move()

Denis
25.06.2018
17:30:15

Alex
25.06.2018
17:30:47
более корректно будет сказать что потоки разделяют общее адресное пространство

Nikolay
25.06.2018
17:30:52
(parent/child не считаю)

Denis
25.06.2018
17:31:16
Надо - создаешь, не надо - не создаешь. Профит все еще непонятен
Шарить объекты между тредами все равно не получится из-за того, что гила нет

Nikolay
25.06.2018
17:32:22

Aragaer
25.06.2018
17:32:25

Google

Nikolay
25.06.2018
17:32:35

Denis
25.06.2018
17:32:40

Nikolay
25.06.2018
17:33:03

Denis
25.06.2018
17:33:21

Nikolay
25.06.2018
17:33:23
чтобы передавать овнершип объекта в другой поток
пользователю вообще срать, потоки там или процессы

Denis
25.06.2018
17:34:06

Tishka17
25.06.2018
17:34:38

Aragaer
25.06.2018
17:35:05
ладно, я офф, через час баиньки уже

Denis
25.06.2018
17:35:25
Сложно это software transactional memory, а с общей памятью разобраться можно

Nikolay
25.06.2018
17:35:32
как делают в C++

Denis
25.06.2018
17:36:43
А это еще медленнее, чем гил

Nikolay
25.06.2018
17:37:18
но вообще как работает unique_ptr?

Denis
25.06.2018
17:37:54
Он работает в одном потоке

Google

Nikolay
25.06.2018
17:38:19
да, но ты можешь его передать в другой поток

Denis
25.06.2018
17:38:35
Но тогда я сам должен о нем забыть

Alex
25.06.2018
17:39:17

Nikolay
25.06.2018
17:39:19
разумеется

Denis
25.06.2018
17:39:27

Alex
25.06.2018
17:39:32
или я не понял проблему

Nikolay
25.06.2018
17:39:36
в этом и суть избегания одновременного доступа

Alex
25.06.2018
17:40:14
Не путаю
как ты передшь unique_ptr в другой поток?

Denis
25.06.2018
17:40:21
А объект указывает на свой класс, а класс на много чего еще, и этому всему иногда хочется менять рефкаунт. Причем хочется и нам, и ему

Donaudampf
25.06.2018
17:40:52
ничосе развили тему

Denis
25.06.2018
17:40:54
То есть все внутренности питона надо копировать

Nikolay
25.06.2018
17:41:19

Denis
25.06.2018
17:41:43
В С++ лок фри shared_ptr уже долго не могут сделать. Потому что сложно

Alex
25.06.2018
17:42:02
тогда лоично да, что в потоке, откуда его передаешь придется о нем забыть

Denis
25.06.2018
17:42:56
Не только о нем, а обо всем, на что он ссылается. Либо менять ссылки, но это называется запиклить и отправить

NoNick
25.06.2018
17:45:03
как в питоне это делается?

Denis
25.06.2018
17:50:45
std::move, кстати, ничего не делает, он просто кастует к rvalue-ссылке