我正在使用java.lang.Object中的wait()的定时版本,并观察到它在两种不同的情况下的行为不同。

方案1:在线程中使用run()的默认定义

public static void main (String[] args) throws InterruptedException {

Thread t = new Thread();

t.start();

System.out.print("X");

synchronized(t) { t.wait(10000);}

System.out.print("Y");

}

方案1的问题:

我在X和Y之间遇到延迟。这是因为我正在从main调用wait()(即使在t上),因此正在使用主线程的调用堆栈,而不是主线程的调用堆栈。第二个线程?

方案2:动态 子类化Thread以重写run()以便打印内容。

public static void main (String[] args) throws InterruptedException {

Thread t = new Thread() {public void run()

{System.out.print("I am the second thread.");}};

t.start();

System.out.print("X");

synchronized(t) { t.wait(10000);}

System.out.print("Y");

}

关于方案2的问题: 我完全没有任何延迟!仅仅因为我重写了run(),发生了什么变化?现在,每次我运行程序时,它都会立即打印“

XI是第二个线程。Y”,而不会出现任何延迟!wait()的作用在哪里消失了?

java 线程 内部_从Java中的main()内部在线程实例上运行wait()相关推荐

  1. java gui变量_关于java:静态/类变量和GUI

    本问题已经有最佳答案,请猛点这里访问. 最近,我被拉回到了Java编程的学术目的,我遇到了一些有趣的在我的第一个项目. 我必须为一个店面设计一个图形用户界面,其中有执行各种任务的按钮,我注意到我的变量 ...

  2. java group类_浅析Java中线程组(ThreadGroup类)

    Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...

  3. java 多线程状态_总结Java中线程的状态及多线程的实现方式

    线程的状态线程状态图: 说明: 线程共包括以下5种状态. 1. 新建状态(New) : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread(). 2. 就绪 ...

  4. java 线程状态_浅析Java中的线程状态

    一.线程的5种状态 众所周知,Java的线程状态有5种,分别对应上图中五种不同颜色,下面对这5种状态及状态间的转化做相应的解释: 1. 初始化状态:新建一个线程对象 2. 可运行状态:其他线程调用了该 ...

  5. java线程概念_《Java基础知识》Java线程的概念

    按照规划,从本篇开始我们开启『并发』系列内容的总结,从本篇的线程开始,到线程池,到几种并发集合源码的分析,我们一点点来,希望你也有耐心,因为并发这块知识是你职业生涯始终绕不过的坎,任何一个项目都或多或 ...

  6. java pojo使用_在POJO中使用ThreadLocal进行Java嵌套事务

    java pojo使用 大多数嵌套事务是使用EJB实现的,现在我们尝试在POJO上实现嵌套事务. 在这里,我们使用了ThreadLocal的功能. 了解嵌套事务 事务可以嵌套在另一个内部. 因此,内部 ...

  7. 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

    最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题.我大概是分成了Java基础.中级.高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与 ...

  8. java 异常对象_在java中的异常处理中的异常对象是什么

    展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...

  9. java线程池1001java线程池_深入浅出Java(Android )线程池ThreadPoolExecutor

    前言 关于线程池 在Java/Android开发中,设计到并发的请求,那基本上是离不开线程池了.用线程池的好处: 1.减少线程频繁创建.销毁的开销: 2.好控制并发量,降低OOM的可能,至于原因文中会 ...

  10. java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable

    线程 1 线程概述 1.1 什么是线程 v  线程是程序执行的一条路径, 一个进程中可以包含多条线程 v  一个应用程序可以理解成就是一个进程 v  多线程并发执行可以提高程序的效率, 可以同时完成多 ...

最新文章

  1. oracle_j000,ORA-600[6749] 发生在 SYSMAN.MGMT_METRICS_RAW表
  2. Web UI 用户管理部分 Bug报告
  3. 转载:使用sklearn进行数据挖掘
  4. asp.net core监控—引入Prometheus(五)
  5. 身份验证和授权作为开源解决方案服务
  6. js调用ajax案例2,使用ok
  7. java 传真x2fax_FreeSWITCH的传真发送
  8. DW里面html鼠标点击特效,【好好学习】-DW-鼠标点击 爆米花特效 代码
  9. Pinterest和Instagram哪个更好用?姐妹还是天敌...
  10. python布尔值print_python中的用户输入布尔值
  11. 彩扩机项目--散热马达驱动部分
  12. 【数学解析几何】C_几种常见的函数曲线——(典型曲线图)
  13. 【小程序测试】小程序介绍,项目简介
  14. Processing 案例 | 扑面而来的满天繁星
  15. mysql创建表里主码和外码_SQL语言创建表时候怎么定义主码和外码
  16. jetson-NX刷机
  17. TP50、TP90、TP99、TP999
  18. NPDP知识推送-第七章产品生周期管理(4)
  19. 计算机逻辑功能测试及应用,逻辑门电路的逻辑功能及测试.doc
  20. 颜色直方图, HSV直方图, histogram bins

热门文章

  1. Competitive Programming专题题解(1)
  2. Bailian2767 简单密码(POJ NOI0107-10)【密码】
  3. 语言学 —— 中文的构词与规律
  4. GAN(Generative Adversarial Networks) 初步
  5. 中英文对照 —— 电影与话剧、歌剧
  6. 四则运算、数字与等式(数字游戏)
  7. macos 开发环境配置
  8. 趣学 C 语言(八)—— 文件内部位置
  9. python精彩编程200例-200G的Python初高级教程+项目实战案例源码,让你做有钱途的人才...
  10. python免费网课-python网课资源