上面的代码是我从书上看的,怎么也不知道程序是怎么走的,执行的顺序怎么也搞不懂,请高手给指点一下程序的执行顺序。
书上的执行结果是:
同步线程
等待线程t2进入活动状态!
……
等待线程t2进入活动状态!
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12搞不懂?
书上的执行结果是:
同步线程
等待线程t2进入活动状态!
……
等待线程t2进入活动状态!
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12
线程t1: 线程号为:11
线程t2: 线程号为:12搞不懂?
Monitor.Enter();
.....
Monitor.Exit();这段代码同时只能一个线程执行,A线程在Enter时,如果没有线程在执行这段代码,A线程继续执行下去,如果有线程执行这段代码,就排队等待,直到执行的这个线程退出了这段代码,A线程继续执行(等待队列头一个线程),就象排队买票一样。