fix bugs: change SynchronousQueue to LinkedBlockingQueue