背景
我有两个线程,一个进行数据的接收,一个进行数据实时曲线展示。
定公共变量x和y列表
线程A
接收坐标数据x和y。
self.pgpower1_x.append(x)
self.pgpower1_y.append(data)
线程B
读取变量x列表和y列表进行数据的显示
self.curve_pgpower1.setData(x=self.pgpower1_x,y= self.pgpower1_y)
出现的问题
问题推测
执行线程2的时候,刚好线程1执行在交叉的位置,也就是可能线程1仅仅对x 进行了加入列表,y还没来及加入,此时线程2 就读到了该数据,导致发现数据长度不匹配异常
解决方案
方案1
毕竟仅仅抛出异常,仅仅这一次没有展示好,似乎问题也不大
方案2
锁机制,后面引入,此处仅仅做出说明