在一个android项目上用到List来作为RTP包的队列,一个线程入队一个线程出队,频率比较高,跑几秒钟就挂了,异常:
java.util.NoSuchElementException
这是什么原因呢,原因是一开始我就认为java的书结构是线程安全的,但默认情况下并不是这样的,有一部分数据结构并不是线程安全的,所以我们得在构造的时候用线程安全的版本:
Collections.synchronizedList(new List<int>());
本文探讨了在Android项目中使用List作为RTP包队列时遇到的线程安全问题。详细介绍了当一个线程入队另一个线程出队且频率较高时出现NoSuchElementException异常的原因,并给出了使用Collections.synchronizedList()确保线程安全的解决方案。
在一个android项目上用到List来作为RTP包的队列,一个线程入队一个线程出队,频率比较高,跑几秒钟就挂了,异常:
java.util.NoSuchElementException
这是什么原因呢,原因是一开始我就认为java的书结构是线程安全的,但默认情况下并不是这样的,有一部分数据结构并不是线程安全的,所以我们得在构造的时候用线程安全的版本:
Collections.synchronizedList(new List<int>());

被折叠的 条评论
为什么被折叠?