——对线程冲突的尝试性主观能动的处理
之前我们一起探索了多线程实现奥秘,知道原理后,我们就可以根据原理来解决之前那个画球的问题。既然各个线程被打碎成了碎片,这些碎片虽然还是具有电脑逻辑的完整性,但是已经不具备人类思维逻辑完整性了,所以它会把我们认为是一体的代码拆开,按照它自己的逻辑组合,所以难免导致程序逻辑上出现问题,虽然计算机并没有出错。所以,我们可以把我们自己认为是逻辑统一且不可分割的部分作为一个“模块”,这些模块在一定程度上保留其完整性的执行。所以,首先我们可以尝试来完成一个简单的“模块”,在此之前,为了在一个线程里画n多个球(n和点击按钮次数有关),我们先建一个类:
虽然计算机为了实现多进程,不可避免地还是把它打碎成碎片,但是由于是一个线程去完成的,所以在一定程度上保留了逻辑完整性。
所以,我们还需要在监听器里面做一些修改,只初始化一个监听器,每次点击按钮就初始化一个小球,并添加进线程的小球队列:
然后激动人心的时刻到了,我们试着运行一下:
图四
小球的颜色没有乱,而且也没有“残影”!
虽然只是一些小小的改动,但是初次尝试的效果显而易见。