增加 semaphore 来同步线程, fixed issue #2