我最近开始学习和探索Java编程的基础知识。

已经编程了一段时间,我只做了后端工作或工作,因此最接近我已经得到用户界面是命令控制台(我知道的尴尬)。

我使用Swing,就我可以收集这意味着通过扩展我也使用AWT。

我的问题是基于这段代码:

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new frame.setVisible(true);

}

} );

我一直在研究这一段时间,因为我想完全理解这个奇怪的代码,并已经碰到了术语“事件调度线程”多次。纠正我,如果我错了,但我明白了;它与使用多线程以及Java Swing如何解释这些线程有关。我收集以上的代码是用来确保所有的线程是’安全的’,在它创建窗口之前,因此invokeLater?

我读过:

“You can only call methods that operate on the frame from the Event-Dispatching Thread”

并且只有在某些情况下,您才能调用从主方法对帧进行操作的方法。

有人可以请澄清一下事件分发线程是什么?

它如何与多线程的执行相关,以及这些线程如何不安全地从主方法中调用?为什么我们需要这个invokeLater?

我们不能只是将窗口创建为任何其他对象吗?

我在研究中打了一个路障,因为我没有抓住这些关系和想法。

旁注是,我喜欢把我的知识基于深入的理解,因为我相信这导致最好的整体结果,因此最好的方案。如果我深入了解事情的工作原理,那么你可以有效地使用提示和调整,而不仅仅是将它们反馈到代码,所以请不要害怕给我一些额外的深入解释和扩大我的知识。

谢谢。

java 线程 事件_Java事件调度线程解释相关推荐

  1. java 队列线程池_JAVA工作队列与线程池

    为什么要使用线程池? 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过网络协议 ...

  2. java线程池_Java 并发编程 线程池源码实战

    作者 | 马启航 杏仁后端工程师.「我头发还多,你们呢?」 一.概述 笔者在网上看了好多的关于线程池原理.源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写 ...

  3. java 生产者消费者_Java多线程:线程间通信—生产者消费者模型

    一.背景 && 定义 多线程环境下,只要有并发问题,就要保证数据的安全性,一般指的是通过 synchronized 来进行同步. 另一个问题是, 多个线程之间如何协作呢 ? 我们看一个 ...

  4. java闭合数据_java多线程中线程封闭详解

    线程封闭的概念 访问共享变量时,通常要使用同步,所以避免使用同步的方法就是减少共享数据的使用,这种技术就是线程封闭. 实现线程封闭的方法 1:ad-hoc线程封闭 这是完全靠实现者控制的线程封闭,他的 ...

  5. java 多线程 任务队列_Java并发编程线程池任务队列

    类ThreadPoolExecutor最常使用的构造方法是: ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliv ...

  6. java 子线程退出_java – 在子线程完成执行之前主线程将退出吗?

    我读了2篇文章 在上面的文章中,在"线程终止"段中,它在Red中声明"如果父线程终止,它的所有子线程也会终止". 在上面的文章中,该页面的最后一行指出" ...

  7. java runnable 启动_Java多线程:线程的创建与启动

    # 面试题: Java中创建线程有几种方式. 不同的创建方式有什么区别. 如何启动一个线程. # Java中创建线程的方式 JDK源码中的描述:两种 image.png 第一种是继承Thread类,重 ...

  8. java 封闭类型_Java并发之线程封闭

    读者们好! 在这篇博客中,我们将探讨线程封闭是什么意思,以及我们如何实现它. 所以,让我们直接开始吧. 1. 线程封闭 大多数的并发问题仅发生在我们想要在线程之间共享可变变量或可变状态时.如果在多个线 ...

  9. java多线程 线程安全_Java中的线程安全

    java多线程 线程安全 Thread Safety in Java is a very important topic. Java provides multi-threaded environme ...

最新文章

  1. /dev/sda2 is mounted; will not make a filesystem here!
  2. 快速指南:在DevOps中实现持续交付
  3. 借“样式”巧用Word自带的多级项目符号!
  4. inode与ln命令
  5. golang中创建logger时候踩过的坑
  6. Linux设备驱动入门----globalmem字符设备驱动
  7. 032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
  8. alpha and beta in statistics
  9. SAS9.3安装经验
  10. Eclipse设置中文及取消
  11. 正交表测试与混合正交表工具
  12. 什么是软件架构?常用的软件架构
  13. 柴静《看见》发布会:采访是人与人的生命往来
  14. html画表盘 随时间转动,利用css3+js实现的可拖动简易表盘时钟
  15. 心理账户--《别做正常的傻瓜》摘记1
  16. openocd编译安装使用 (基于百问网openjtag工具 ftdi)
  17. Linux操作系统 —— 普通用户无权限执行命令怎么办
  18. 24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
  19. 【我的OpenGL学习进阶之旅】介绍一下 绘制图元
  20. Android手电筒制作

热门文章

  1. oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...
  2. 仓库处理中 无法修改_临沂用友U8erp系统软件如何新增仓库?
  3. 惠普10代的服务器有哪些型号,英特尔官方科普:秒懂十代酷睿型号怎么认!
  4. mysql max嵌套select_使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题
  5. 微信小程序的多选改变样式_微信小程序radio的样式修改
  6. tim怎么设置检测到新版本自动安装 tim安全自动更新的开启方法
  7. 优酷下载的视频保存在哪里
  8. JS监听DOM宽高的变化
  9. vim 强制保存只读文件
  10. 计算机专业怎样提升竞争力,新形势下如何提高计算机专业学生就业竞争力.doc...