LINUX.ORG.RU

История изменений

Исправление shkolnick-kun, (текущая версия) :

Почему? В плюсах тоже можно в лямбду перемещать.

Очень может быть, хотя кресты тоже не нужны.

Нет. Плюсовый аналог: создать thread и позвать для него join.

Прямого то нет. Немедленно? Зачем?

Как это? А если вызов единственный?

Погоди...

Я правильно понимаю, что типаж Sync пустой, то есть это тупо способ сказать компилятору, что ссылку на нечто можно безопасно передавать между тредами?

Ну тогда это особый случай, и его надо обозначить явно, правда зачем так многословно?

А если это библиотека, например?

Если статическая, то хранить ее в промежуточном представлении, и делать специализации...

Если динамическая... Это уже интересней... Можно в «заголовке» экзешника указывать, какие специализации нужны, и JIT-ить библиотеку в соответствии с этой информацией из промежуточного представления, например (вот это я дотнетчик, однако).

Или если решение об использовании потоков происходит в рантайме?

Если есть вызов spawn - заворачивать в мьютекс/другой механизм синхронизации и не волнует (да это не всегда оптимально).

Исправление shkolnick-kun, :

Почему? В плюсах тоже можно в лямбду перемещать.

Очень может быть, хотя кресты тоже не нужны.

Нет. Плюсовый аналог: создать thread и позвать для него join.

Прямого то нет. Немедленно? Зачем?

Как это? А если вызов единственный?

Погоди...

Я правильно понимаю, что типаж Sync пустой, то есть это тупо способ сказать компилятору, что ссылку на нечто можно безопасно передавать между тредами?

Ну тогда это особый случай, и его надо обозначить явно, правда заче так многословно?

А если это библиотека, например?

Если статическая, то хранить ее в промежуточном представлении, и делать специализации...

Если динамическая... Это уже интересней... Можно в «заголовке» экзешника указывать, какие специализации нужны, и JIT-ить библиотеку в соответствии с этой информацией из промежуточного представления, например (вот это я дотнетчик, однако).

Или если решение об использовании потоков происходит в рантайме?

Если есть вызов spawn - заворачивать в мьютекс/другой механизм синхронизации и не волнует (да это не всегда оптимально).

Исходная версия shkolnick-kun, :

Почему? В плюсах тоже можно в лямбду перемещать.

Очень может быть, хотя кресты тоже не нужны.

Нет. Плюсовый аналог: создать thread и позвать для него join.

Прямого то нет. Немедленно? Зачем?

Как это? А если вызов единственный?

Погоди...

Я правильно понимаю, что типаж Sync пустой, то есть это тупо способ сказать компилятору, сто ссылку на нечто можно безопасно передавать между тредами?

Ну тогда это особый случай, и его надо обозначить явно, правда заче так многословно?

А если это библиотека, например?

Если статическая, то хранить ее в промежуточном представлении, и делать специализации...

Если динамическая... Это уже интересней... Можно в «заголовке» экзешника указывать, какие специализации нужны, и JIT-ить библиотеку в соответствии с этой информацией из промежуточного представления, например (вот это я дотнетчик, однако).

Или если решение об использовании потоков происходит в рантайме?

Если есть вызов spawn - заворачивать в мьютекс/другой механизм синхронизации и не волнует (да это не всегда оптимально).