让我们考虑一个包含以下内容的应用程序:
1)websocket rstudio/websocket::onMessage
函数(程序包:rstudio/websocket
),它填充queue
,因为数据来自websocket(多线程)。 queue
是全局变量。
2)while(TRUE)
循环,该循环在主线程上运行,并查找queue
,并在某些计算对其进行操作之后(例如,擦除计算所基于的某些元素(固定索引))已从queue
完成)。请记住,1)同时正在更改此全局变量queue
。
我的问题是,是否应该在开始操作(擦除元素)之前锁定queue
,还是R自己完成?
我担心的是,在我擦除时,某些新元素可能会进入queue
并扭曲其索引,因此最终我会擦除错误的元素。