线程同时启动讨论 线程线程池面试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你要真正做到几个线程同时启动是几乎不可能的,因为第一你不能保证硬件上有足够多的并行处理单元(比如你只有一个单核CPU是不可能同时跑8个线程的)第二,操作系统有复杂的线程调度机制,不同的操作系统机制是不同的,你可能在一个操作系统上实现了同步,但另外一个操作系统上就行不通了,而且实际上就算在一个特定的操作系统上也是不可能实现的,因为变量太多,你无法限制环境中其他线程的行为。第三,你用Java那更加不可能了,Java还有一层虚拟机,虚拟机的干涉管理也是会影响线程具体表现的。但你要是就一个赛车开始问题,有必要追求极致同步吗?就依次启动几个线程,最后一个与第一个差距也就1ms,而人反应时间至少都要几十ms,如果低于这个时间,你完全可以忽视他的操作,认为他作弊。 两位朋友说的应该是我需要的答案这里有个链接,说闭锁的概念和例子的http://blog.csdn.net/lmc_wy/article/details/78668631、闭锁是一种synchronizer,它可以延迟线程的进度直到线程到达终止状态。2、CountDownLatch是一个灵活的闭锁实现:1) 允许一个或多个线程等待一个事件集的发生,闭锁的状态包括一个计数器,初始化为一个正数,用来实现需要等待的事件数。2)countDown对计数器做减操作,表示一个事件已经发生了,而await方法等待计数器达到0,此时所有需要等待的事件都已经发生。3)如果计数器的入口时值为非零,await会一直阻塞直到计数器为0,或等待线程中断及超时。3、使用CountDownLatch启动和停止线程 多态 用java实现生成一指定范围的随机数列 javamail问题紧急求救:在windows下可以发送,到linux下就不行了 socket里如何完整读取指定长度的字节流? clone问题? 请问怎么用JAVA解决数据库乱码问题? 小问题,大麻烦 大哥你们是怎样编译,运行的 需要一个记事本式的程序的源程序 一个关于AWT与Swing 混用的问题 Date.getTime()问题 java调用matlab出错,求帮忙
第二,操作系统有复杂的线程调度机制,不同的操作系统机制是不同的,你可能在一个操作系统上实现了同步,但另外一个操作系统上就行不通了,而且实际上就算在一个特定的操作系统上也是不可能实现的,因为变量太多,你无法限制环境中其他线程的行为。
第三,你用Java那更加不可能了,Java还有一层虚拟机,虚拟机的干涉管理也是会影响线程具体表现的。但你要是就一个赛车开始问题,有必要追求极致同步吗?就依次启动几个线程,最后一个与第一个差距也就1ms,而人反应时间至少都要几十ms,如果低于这个时间,你完全可以忽视他的操作,认为他作弊。
这里有个链接,说闭锁的概念和例子的
http://blog.csdn.net/lmc_wy/article/details/7866863
1、闭锁是一种synchronizer,它可以延迟线程的进度直到线程到达终止状态。
2、CountDownLatch是一个灵活的闭锁实现:
1) 允许一个或多个线程等待一个事件集的发生,闭锁的状态包括一个计数器,初始化为一个正数,用来实现需要等待的事件数。
2)countDown对计数器做减操作,表示一个事件已经发生了,而await方法等待计数器达到0,此时所有需要等待的事件都已经发生。
3)如果计数器的入口时值为非零,await会一直阻塞直到计数器为0,或等待线程中断及超时。
3、
使用CountDownLatch启动和停止线程