У меня есть следующий код, который состоит в том, что я помещаю некоторые данные в объект параллельной очереди из библиотеки PPL (Concurrent Runtime) в C ++. Данные обновляются постоянно (для каждого кадра видео) и выполняются следующим образом:
short* data;
data = new short[num_samples];
// data gets updated continuously
conQueue->push(data);
Я инициализирую очередь, как показано ниже:
conQueue = new concurrency::concurrent_queue<short*>;
со следующими библиотеками :
#include <ppl.h>
#include <concurrent_queue.h>
Мой вопрос - будут ли данные, которые помещаются в очередь, копироваться по ссылке или значению? Я продолжаю видеть смешанные комментарии онлайн. Причина в том, что я вытаскиваю все данные из очереди из другого потока, и я хочу убедиться, что данные являются точными для того точного кадра, из которого они были (а не из какого-то текущего кадра, если они хранятся по ссылке) .
Кажется, я не могу придумать, как это проверить, чтобы увидеть. Любые идеи будут с благодарностью - спасибо!