java - 每个类默认都有自己的Thread吗?

标签 java multithreading user-interface thread-sleep

我正在使用 GUI,并且我正在使用

Thread.sleep();

在某些类中,我想知道是否需要为我的 Main 创建一个单独的线程类(GUI 类),或者每个类默认都有一个单独的线程。请注意,我提出 Thread.sleep(); 的原因首先是使用 GUI 时 Thread.sleep();几乎卡住了你的 GUI。无论如何,我的主要问题是我是否需要为我的 Main 创建一个单独的线程类或者每个类默认都有一个单独的线程。

最佳答案

Thread.sleep()是Thread类的静态方法。因此,无论您在方法中放置哪个类,在运行时,如果线程调用流程遇到调用了 Thread.sleep() 的此类方法,则该线程将被阻塞一段时间。

您的问题:
无论如何,我的主要问题是我是否需要为我的主类创建一个单独的线程,或者默认情况下每个类都有一个单独的线程。

  • 每个类默认都有一个单独的线程——错误语句
    -- Thread类并不是被每个类继承
    -- 通常意义上,Thread是一个调用流程。它执行通过其方法调用遇到的任何类。
    -- 类和线程是两个独立的概念。
    ---- 类是一个实体的定义,它不能单独运行,它可以被加载、用数据实例化、可以进行方法调用和垃圾收集。
    ---- 线程是运行时的执行实体。它可以启动、可运行、阻塞、停止。为了支持这个概念,Java提供了Thread类或Runnable接口(interface)来分别扩展/实现。

  • 我需要为我的主类创建一个单独的线程吗?
    -- 您的主类将在 MainThread 中执行,该 MainThread 由您的 JVM 实例化并启动。
    -- 最好定义一个单独的用户定义线程来启动 GUI。
    -- 如果在 MainThread(或)用户定义的线程中,如果在调用流程中遇到 Thread.sleep(),则该特定线程将被阻塞。

还有一件事,您的问题不清楚您是否需要使用 Thread.sleep()。您只是给出了使用它的原因,但没有给出使用的必要性。

关于java - 每个类默认都有自己的Thread吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373276/

相关文章:

java - 在 Magnolia CMS 上使用 Spring + SockJS + STOMP 的 Websocket

c# - 在 ASP.Net 中静态或作为单例使用 XML Webservices

java - 如何将ObjectDecoder添加到netty服务器

user-interface - 有哪些很好的例子表明 "I am not the user"?

java - 如何找到 JAR :/home/hadoop/contrib/streaming/hadoop-streaming. jar

java - 计算字符串中数字出现的次数

multithreading - SQL Server中的多线程

swift - 如何将在 adobe xd 中制作的 ui 导入到 Xcode?

c++ - QMdiSubWindow 的初始大小

java - 不同格式的 Axis SOAP 响应是否相同?