为了解决案例10-1中密码找到了,但程序还需要再运行一段时间才能结束的问题,采用事件机制,一个线程找到密码,就通知其他线程结束运行。
改进策略如下。
①创建一个事件机制的对象。
②在密码匹配循环中,添加一个事件判断isSet(),如果isSet()的结果是False,则继续尝试密码匹配。找到密码则用set()方法将Event对象内部的信号标志设为True,由此可通知所有处于等待阻塞状态的线程。
运行结果: