Semaphore实现信号灯
接下来我们讲,java5里面提供的一个线程的工具。叫Semaphore,信号灯。Semaphore是一种什么技术呢?它可以控制同时访问资源的线程个数。假设我现在有3盏灯,现在有一个人来,我通知他可以走了,他就拿走1盏灯,还剩2盏灯。再有一个人来呢,我又可以让他走,只要有灯亮,他就可以走。如果3盏灯都被别人拿走了,怎么办呢?再有第4个人来,就不行了,就得等,然后,这前面3个当中有一个把灯还回来了,第4个就又可以走了。这样你看,我们实现文件的并发访问,假如我的文件只能同时被3个人访问,来了5个人,你说有几个人可以进去访问呢,3个。另外两个自然的就等,因为它谁先把灯拿走,谁就先进去了。还有比如打个比喻说,厕所里面有5个坑,现在去了6个人,只能有一个人等,是吧,然后另外5个人进去了,另外五个当中的任何一个灯出来以后,外面的人就可以进去,就是实现这样一个功能。接下来我们讲,java5里面提供的一个线程的