Мне нужно иметь возможность записывать данные на график при одновременном сборе данных. Данные не могут быть изменены, пока диаграмма читает из них. Однако мне нужно иметь возможность получать новые данные, пока диаграмма читает данные. Данные, отображаемые на диаграмме, не обязательно должны быть обновлены на 100%.
Вот что я подумал:
Данные считываются в массив записи, который блокируется, затем данные копируются в массив чтения, который также блокируется, а затем оба разблокируются.
Диаграмма блокирует скопированный массив всякий раз, когда ему нужно прочитать его.
Сборщик данных считывает больше данных в массив чтения.
Каждый раз, когда сборщик данных блокирует оба массива и копирует массив записи в массив чтения.
Есть ли лучшие способы сделать это?