|
数据本身是没问题的,有问题的是调试输出,这个命令不是线程安全的。至于为什么会输出重复数字,我猜测是调试输出命令在出现线程安全问题时凑巧会输出1-8,可以尝试传递100-108则没有重复问题,可通过以下代码验证结论。
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 集_线程池 | 鱼刺类_线程池 | | 集_临界许可 | 鱼刺类_临界许可 | | 日志许可证 | 整数型 | | arr | 整数型 | 0 | 日志许可证 = 创建进入许可证 ()启动线程 (&主线程, , )变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 局_线程数 | 整数型 | | |
局_线程数 = 4 集_线程池. 创建 (局_线程数, , , 假) 清除数组 (arr )计次循环首 (10, i )启动线程 (&子线程, i + 100, ) 调试输出 (“主线程:”, i )计次循环尾 ()延迟 (100 )调试输出 (arr )集_线程池. 等待任务动态 () 判断循环首 (集_线程池. 取_是否完全空闲 () = 假) _延时 (300 )判断循环尾 ()调试输出 (“线程全部执行完毕”) _延时 (40 )调试输出 (“i”, i )进入许可区 (日志许可证 )加入成员 (arr, i )退出许可区 (日志许可证 )
|
|