在R中更改全局列表是否是线程安全的?

时间:2019-05-20 15:48:02

标签: r multithreading thread-safety

让我们考虑一个包含以下内容的应用程序:

1)websocket rstudio/websocket::onMessage函数(程序包:rstudio/websocket),它填充queue,因为数据来自websocket(多线程)。 queue是全局变量。

2)while(TRUE)循环,该循环在主线程上运行,并查找queue,并在某些计算对其进行操作之后(例如,擦除计算所基于的某些元素(固定索引))已从queue完成)。请记住,1)同时正在更改此全局变量queue

我的问题是,是否应该在开始操作(擦除元素)之前锁定queue,还是R自己完成? 我担心的是,在我擦除时,某些新元素可能会进入queue并扭曲其索引,因此最终我会擦除错误的元素。

0 个答案:

没有答案