今天,简单讲讲在线程里把数据缓存起来。
如果在线程里有一些类变量,在run的代码里循环给这些变量赋值,然后缓存在一个list链表里,最后变量链表会发现数据有的不对。
原因很简单,对于基本数据类型,可以直接在变量里赋值,而对于byte[],实体类等,则必须开辟存贮空间,不能直接赋值,因为对象和数组使用等于赋值实际上只是把对象或数组的引用赋值给了实体类的变量,当对象或数组发生改变时,实体类的数据会随之改变。
具体的代码很简单,在赋值时注意就可以。
public P2PNewDev.P2PVO p2PVO; public RealMediaHeader m_header; public byte[]