摘要:
timer类线程的使用时根据时间间隔,不停启动线程。他不会因为上一个线程没有运行完而不启动线程。也就是timer的定时启动线程没有任何条件限制,无论什么情况都会启动线程。
很多情况下定时启动的线程其实是希望顺序执行的,也就上一个线程没有执行完的是很下面的线程是不希望执行的。或者并不是很讲究顺序,而是只希望同一个时刻只有一个线程在运行,这个线程在运行的时候其他后启动的线程是直接不启动,或者启动了不真正执行操作。
在这个需求的背景下,产生了这个线程同步的问题。我使用之值类型的方式同步。是用一个bool类型的状态变量判断是否当前是否有线程在使用。如果有当前线程直接将线程return。在线程启动后且判断状态位为可用后,设置状态位,在线程的最后将状态变量复位。
阅读全文