社区
C#
帖子详情
ArrayList多线程问题。
lxcooi
2005-12-29 10:00:39
.Net文档中关于ArrayList有改下描述:
“此类型的公共静态(在 Visual Basic 中为 Shared)成员对于多线程操作是安全的。不能保证实例成员是线程安全的。”
我在一个Web工程中使用了一个ArrayList的静态对象。并且在用户访问时会修改其中的元素和元素数目。
我的问题是当多用户访问时,这个对像能保证不发生冲突么?
换句话说就是静态的ArrayList能保证多线程修改而不发生异常么??
...全文
252
3
打赏
收藏
ArrayList多线程问题。
.Net文档中关于ArrayList有改下描述: “此类型的公共静态(在 Visual Basic 中为 Shared)成员对于多线程操作是安全的。不能保证实例成员是线程安全的。” 我在一个Web工程中使用了一个ArrayList的静态对象。并且在用户访问时会修改其中的元素和元素数目。 我的问题是当多用户访问时,这个对像能保证不发生冲突么? 换句话说就是静态的ArrayList能保证多线程修改而不发生异常么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mobydick
2005-12-29
打赏
举报
回复
可以这样
ArrayList al = new ArrayList();
lock(al.SyncRoot)
{
//do something...
}
alesso
2005-12-29
打赏
举报
回复
声明一个
public static readonly object m_LockMe = new object();
操作ArrayList的时候
lock (m_LockMe) {
DoSomething();
}
alesso
2005-12-29
打赏
举报
回复
楼上的更好
Java进阶课程系列之
ArrayList
集合底层源码实战分析
其他方面,
ArrayList
是非线程安全类,并发环境下,多个线程同时操作
ArrayList
,会引发不可预知的错误。 本节课程会带着大家去学习集合底层源码是什么个结构,他在做什么事情,能做到什么事情,会出现的
问题
...
ArrayList
多线程
操作的
问题
这些
问题
的根本原因在于
ArrayList
不是线程安全的。在 Java 集合框架中,
ArrayList
的设计没有考虑同步机制,这意味着当多个线程对其进行操作时,并没有内置的方法来防止竞争条件或保证线程安全。
ArrayList
多线程
并发安全
问题
ArrayList
线程不安全的情况: ...size++为多条指令的组合,
多线程
并发size++时,size会出现并发
问题
,小于预期结果 当数组元素达到临界值-1的时候(临界值为10,15,22,33…),比如到达了size=14,这时候t1执行
ArrayList
多线程
环境下的
问题
1、判断扩容:根据size(已添加的元素个数)判断是否需要扩容(即size+1是否会大于elementData数组的长度,若大于则扩容成2倍) 2、设置元素:在elementData相应位置上设置元素的值
多线程
下存在的
问题
数组越界...
解决
ArrayList
在
多线程
操作中线程不安全导致的报错
解决
ArrayList
在
多线程
操作中线程不安全导致的报错
C#
110,537
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章