解决方案 »

  1.   

    你要真正做到几个线程同时启动是几乎不可能的,因为第一你不能保证硬件上有足够多的并行处理单元(比如你只有一个单核CPU是不可能同时跑8个线程的)
    第二,操作系统有复杂的线程调度机制,不同的操作系统机制是不同的,你可能在一个操作系统上实现了同步,但另外一个操作系统上就行不通了,而且实际上就算在一个特定的操作系统上也是不可能实现的,因为变量太多,你无法限制环境中其他线程的行为。
    第三,你用Java那更加不可能了,Java还有一层虚拟机,虚拟机的干涉管理也是会影响线程具体表现的。但你要是就一个赛车开始问题,有必要追求极致同步吗?就依次启动几个线程,最后一个与第一个差距也就1ms,而人反应时间至少都要几十ms,如果低于这个时间,你完全可以忽视他的操作,认为他作弊。
      

  2.   

    两位朋友说的应该是我需要的答案
    这里有个链接,说闭锁的概念和例子的
    http://blog.csdn.net/lmc_wy/article/details/7866863
    1、闭锁是一种synchronizer,它可以延迟线程的进度直到线程到达终止状态。
    2、CountDownLatch是一个灵活的闭锁实现:
    1) 允许一个或多个线程等待一个事件集的发生,闭锁的状态包括一个计数器,初始化为一个正数,用来实现需要等待的事件数。
    2)countDown对计数器做减操作,表示一个事件已经发生了,而await方法等待计数器达到0,此时所有需要等待的事件都已经发生。
    3)如果计数器的入口时值为非零,await会一直阻塞直到计数器为0,或等待线程中断及超时。
    3、
    使用CountDownLatch启动和停止线程