精易论坛
标题:
【开源】c#线程安全的List,一比一复刻版
[打印本页]
作者:
叮小当
时间:
10 小时前
标题:
【开源】c#线程安全的List,一比一复刻版
前言:
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