Tra*_*uer 8 c# thread-safety .net-core
我刚刚发现ArrayPool存在,但它的文档有点缺乏.
我想知道Rent(.)和Return(.)是否是线程安全的.
编辑:看起来我没有注意到文档的"线程安全"部分; 但阅读一些评论和答案后,我感到宽慰,我不是唯一没有这样做的人.
更新来自ta.speot.is的评论
字面意思是 线程安全这个类是线程安全的.所有成员可以同时由多个线程使用
原版的
它没有在docs.microsoft.com上说出来,但是有一些引用它的事实
将新的System.Buffers命名空间添加到BCL以进行资源池
Pool将是轻量级和线程安全的,允许从进程内的任何线程进行快速的Rent和Return调用,以及最小的锁定开销,以及大多数Rent调用的0堆分配(对此的例外将在下面的描述中调用租金功能).
建议:使用ArrayPool.Shared属性,该属性返回共享池实例.它是线程安全的,你需要记住的是它有一个默认的最大数组长度,等于2 ^ 20(1024*1024 = 1 048 576).
.