雨中漫步 发表于 2023-6-1 09:50 我可没说改变大小没问题, 只读1000条线程并发也没问题,写有两条并发线程就有概率导致崩溃 |
6666666666666666666666666666666 |
太感动了,终于知道为什么不能写变量的时候读了,感谢伙伴们呐!(泪奔::>_<:编程太难了,好多东西都不知道,只会傻傻的调用个方法。。。 |
本帖最后由 雨中漫步 于 2023-6-1 09:58 编辑 qaz2428119 发表于 2023-6-1 09:44 不严谨,有些时候,写操作不只是改变大小,还会改变结构,甚至指针改变。 如果出现了读写并行,多数时候就需要保护 哪怕有1000个线程读,有一个线程写,只要有几率同时发生,就有概率出现并发崩溃。 并不是你理解的,只要数据大小不改变就允许读写并行。里面还有细节。 不要误导别人。 读写并行安全的核心点,读写操作并行发生时,资源大小,结构不能有丝毫变化,许多程序编译过程,或者为了提高速度,内存都是预设并复用分配,多数复杂场景并不具备读写并行条件。具体问题具体分析。 使用读写锁就可以读写并行了,是不正确认知,要看具体情况的。不相信就可以跑跑测试,就能验证了。 锁为什么会有很多种,原子锁,读写锁? 因为读写锁有自己的使用场景,用错了必然出问题,多线程的学习要理论先行,理解要充分。 |
|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )
GMT+8, 2024-11-24 07:44 , Processed in 0.094349 second(s), 23 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.