我想在主线程中获取子线程运行的时间,一种方式是使用join()方法,经验证是可行的;

但是我想试试等待唤醒机制,思路是:子线程启动后主线程等待,子线程结束后唤醒主线程,但是不太清楚为什么会报错,从运行结果看出并没有提前唤醒,但是却报错了。

public class Test {

public static void main(String[] args) {

Object lock = new Object();

int num = 1000;

//子线程

Thread t = new Thread(() -> {

String s = "";

for (int i = 0; i < num; i++) {

s += "Java";

}

System.out.println("t Over");

lock.notify();

});

//计时

long start = System.currentTimeMillis();

System.out.println("start = " + start);

//启动子线程

t.start();

//主线程等待

try {

lock.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

long end = System.currentTimeMillis();

System.out.println("end = " + end);

System.out.println("end - start" + (end - start));

}

}

刚看多线程没多久,不太明白为什么会报错?

主线程 唤醒_Java等待唤醒机制统计子线程运行时间的方式及其疑问相关推荐

  1. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次

    近在学习多线程,特贴在这里,并附上自己所作答案(参考与张孝祥老师的方法). 题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50 ...

  2. 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次

    子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序. package Demo4; public class ThreadTe ...

  3. java中主线程首先执行_java经典面试题:子线程先运行30次主线程,主线程40次,如此循环50次?...

    最近偶遇这道题,网上相似的题都是循环次数不一样.然而我百度搜到的论坛或者博客感觉都不太对,运行有穿插.请给出正确结果. 我们假使所有人都引入了业务对象. 并且我有疑问?感觉题目本意不是new Thre ...

  4. java内存 海子_Java垃圾回收机制 - 海 子

    Java垃圾回收机制 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来.在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给 ...

  5. python主线程执行_Python队列 – 最多运行n个线程

    场景: 我有一个非常大的数据库模型迁移正在进行新的构建,我正在研究如何将Web应用程序中的当前实时数据迁移到本地测试数据库中. 我想在python中设置一个脚本,它将同时处理我的模型的迁移.我的模型实 ...

  6. java和线程相关的关键字有哪些_Java中有哪些机制来保证线程安全?synchronized关键字和volatile关键字...

    想要解决线程安全问题,首先要知道为什么会造成线程不安全? 在单线程中,我们从来没有提到个线程安全问题,线程安全问题是只出现在多线程中的一个问题.因为多线程情况下有共享数据,每个线程都共享这些数据并对这 ...

  7. 主线程等待几个子线程执行完成方案

    有时,为了程序的性能,我们有必要对程序中的for循环(含有sql/rpc操作)进行并发处理,要求是并发处理完之后才能继续执行主线程.现给出如下两种方案: 1. CountDownLatch Java代 ...

  8. 主线程和子线程的同步控制

    一个线程的结束有两种途径,一种是象我们以下的样例一样.函数结束了.调用它的线程也就结束了.还有一种方式是通过函数pthread_exit来实现.另外须要说明的是,一个线程不能被多个线程等待,也就是说对 ...

  9. Java实现主线程与子线程访问临界资源同步模拟

    1.问题描述 使用不同的方法完成主线程与子线程的同步,要求子线程先执行,在主线程中使用Thread类创建一个子线程,主线程创建后进入阻塞状态,直到子线程运行完毕后唤醒主线程. 2.代码实现 (2.1) ...

最新文章

  1. 惊呆了!B 站公告低级错误,将公司名写成“百度”
  2. [dp]Leetcode 5. Longest Palindromic Substring
  3. 曼彻斯特编码_两种编码方式以及两种帧结构
  4. Navicat Premium试用期破解方法(转)
  5. Hibernate一级缓存与二级缓存的区别
  6. 一种在智能对话中实现上下文功能的方法
  7. sudo uograde 之后 需要重装显卡驱动
  8. python工资一般多少-Python工程师工资多少
  9. dp线长什么样子_一根DP线引发的显示器超频事件
  10. 【备战春招/秋招系列】程序员的简历就该这样写
  11. NYNU_ACM 实验室招新月赛题解
  12. 解决 tabby 登录远程时报错:Handshake failed: no matching key exchange algorithm
  13. 类和对象的概述及二者之间的关系
  14. 今天看了ning的介绍,很有意思
  15. 计算机职称照图片,全国职称计算机报名如何上传照片。怎么提示你无需上传照片。可以直接进行报名呢...
  16. 状态变量及状态空间表达式的模拟结构图
  17. 剑指 Offer II 049. 从根节点到叶节点的路径数字之和
  18. ubnutu系统官网
  19. MySQL的安装(最新版本)(二)
  20. 欧克科技在深交所上市:客户集中度较高,胡坚晟为控股股东

热门文章

  1. wince车机可以连接电脑吗_揭秘低价电脑洗车机的“内幕”,看完你还敢用吗?...
  2. BZOJ-3531-旅行
  3. python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标...
  4. php一句话图片木马过滤_php一句话图片木马怎么解析
  5. 《安全测试指南》——信息收集测试【学习笔记】
  6. Spring入门介绍:
  7. springboot shiro和freemarker集成之权限控制完全参考手册(跳过认证,登录由三方验证,全网首发)...
  8. bzoj3786: 星系探索
  9. 关于equals和hashcode问题
  10. 你光明,这世界便不黑暗!---2016年.3.16演讲稿