Rvalue refs в параллельности - PullRequest
       6

Rvalue refs в параллельности

6 голосов
/ 13 декабря 2010

Я немного освоился с новой средой параллельного выполнения Visual Studio (ConcRT). Это просто упущение или есть веская причина, по которой никакое межпотоковое перемещение данных не имеет семантики перемещения? Они все копируют семантику. Вы не можете перейти в параллельную очередь, вы не можете двигаться с помощью asend и т. Д. Вы даже не можете переместить создание параллельных очередей.

Ответы [ 2 ]

3 голосов
/ 31 декабря 2010

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

Представьте, что я создаю объект, беру ссылку / указатель на него и перемещаю его в очередь. Затем другой поток перемещает его из очереди. Тогда оба потока могут получить к нему доступ одновременно.

Я думаю, что в общем случае необходимо иметь копию только для добавления или удаления, а не для обоих (т.е. требуется только одна копия) например удаление при копировании, но семантически это будет то же самое, что и при копировании.

1 голос
/ 02 июня 2011

Существует ряд областей, в которых поддержка rvalue может улучшить ConcRT, агентов и PPL.Как и в любом крупном программном проекте, когда вы создаете функции, основанные на других новых функциях, всегда существует риск того, что вы сможете выполнить все сразу.

PPL был серьезным шагом вперед, но мы никогда не говорили, что это «сделано».: -)

Если у вас есть конкретные предложения, в которых ConcRT, PPL или библиотека агентов должны поддерживать семантику перемещения, откройте предложение на connect.microsoft.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...