static void testLock1(){

            final AtomicInteger waitCount = new AtomicInteger(30000);
final Object waitObj = new Object();
System.out.println("start"+System.currentTimeMillis());
for (int i=0;i<30000;i++) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
waitCount.decrementAndGet();
synchronized(waitObj){
waitObj.notifyAll();
}
}
}).start();
}
while( waitCount.intValue()>0) {
synchronized (waitObj) {
if(waitCount.intValue()>0){
try {
waitObj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
System.out.println("ok"+System.currentTimeMillis());
}
static void testLock2(){ final CountDownLatch workLauch = new CountDownLatch(30000);//计数器
System.out.println("start2"+System.currentTimeMillis());
for (int i=0;i<30000;i++) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
workLauch.countDown();
}
}).start();
}
try {
workLauch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("ok2"+System.currentTimeMillis());
}
public static void main(String[] args) {
testLock1();
testLock2();
}

第一种是我随便写的实现,有点糙。第二种是朋友告知的一个类,java的concurrent中的,据说还有几个相似功能的类实现。这30000个线程 时间差大概是不到200ms的样子

嗯。。。。吃饭的家伙都没学精,好惭愧。

最新文章

  1. ViewPager与Tab结合使用
  2. Count Complete Tree Nodes
  3. 纯CSS实现Tooltip
  4. c# tabcontrol事件以及上下文菜单
  5. 学C++50条建议
  6. C++中引用(&amp;)的用法和应用实例
  7. SQL Server 2008 R2 开启数据库远程连接
  8. CSS3 @font-face 指定英文网页字体
  9. Android 经验: 5555 端口会被 adb 误认为 emulator
  10. lwip移植到stm32上-enc28j60,103mcu(2)
  11. java常用API的总结(1)
  12. gvim 技巧
  13. 图论++【洛谷p1744】特价采购商品&amp;&amp;【一本通1342】最短路径问题
  14. 字符编码问题mysql
  15. centOS配置国内镜像
  16. android开发(30) 使用WebView,点击网页中的链接建立QQ 临时会话 WPA
  17. 会话技术及jsp概述
  18. Python——面向对象、绑定对象、组合
  19. 简明 Vim 教程
  20. Debugging QML Applications

热门文章

  1. (图文实例)用VB.net操作SQLite数据库
  2. RN 常见问题
  3. Ricequant-米筐金工-估值因子
  4. win10 UWP Markdown 含源代码
  5. Java中数组的遍历
  6. ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd
  7. 在打开Dreamweaver软件情况下,vs2010 asp项目无法调试
  8. Lustre文件系统测试——obdfilter-survey测试
  9. js 如何判断一个数字是不是2的n次方幂
  10. SQL注入技术