精易论坛

标题: 【开源】c#线程安全的List,一比一复刻版 [打印本页]

作者: 叮小当    时间: 10 小时前
标题: 【开源】c#线程安全的List,一比一复刻版
1.jpg
2.jpg

前言:
1. c#有线程安全的队列,有线程安全的字典,有线程安全的集合bag,但唯独没有线程安全的List,很多人会说,字典就足够了,没必要用list。其实线程安全的字典,只在 key value 这一层是安全的,如果 value 是个list 或者 其他不支持线程安全的集合,那么 当你多线程改写 同一个 value 时,一样会导致竞态致使数据混乱。

2. list有很多功能是字典无法取代的,比如 linq语法的 any,find,findAll,where,select,removeAll,还有 sort 排序。

以上就是我制作这个 线程安全的list 由来。

为了适配以前的代码,我直接封装了c#原版list,并扩展了所有list功能的线程安全特性,你可以方便使用它,不需要更改你的代码,并且可以快捷的在list 和 safelist 之间转换。
除了类型命名不同,其他使用方法与原版list完全一致。你现在可以安全的在多线程中使用list的所有功能,而不需要为线程安全考虑。
内部通过读写锁互相升级的方式,保证了集合在多线程下的安全修改和读取。

本代码经过了几个月的线上游戏测试,目前稳定运行中。。。

源码如下:


作者: gaoqing    时间: 9 小时前
谢谢分享
作者: 不苦小和尚    时间: 9 小时前
谢谢分享,不错不错
作者: Siempre    时间: 8 小时前

作者: zxxiaopi    时间: 7 小时前
感谢分享
作者: kugua5201    时间: 7 小时前
这是个好东西用起来
作者: dzscuz    时间: 7 小时前
有线程安全的字典,有线程安全的集合bag
作者: 大胜科技    时间: 5 小时前
有咩有使用例子啊
作者: 叮小当    时间: 5 小时前
大胜科技 发表于 2024-9-20 16:46
有咩有使用例子啊

与c#原版list用法相同
作者: 2995455338    时间: 3 小时前
9666666666666666
作者: 文西哥    时间: 2 小时前
大佬就是大佬,学习一下




欢迎光临 精易论坛 (https://bbs.125.la/) Powered by Discuz! X3.4