当前位置: 首页 > 面试题库 >

Java-创建一个新线程

段干庆
2023-03-14
问题内容

我是线程新手。我想创建一些与主线程分开工作的简单函数。但这似乎不起作用。我只想创建一个新线程,并在那里独立于主线程发生的事情做一些事情。这段代码看起来很怪异,但到目前为止,我对线程的了解还很少。你能解释一下这是怎么回事吗?

  public static void main(String args[]){
      test z=new test();

      z.setBackground(Color.white);

      frame=new JFrame();
      frame.setSize(500,500);
      frame.add(z);
      frame.addKeyListener(z);
      frame.setVisible(true);

      one=new Thread(){
          public void run() {
              one.start();
              try{
                  System.out.println("Does it work?");
                  Thread.sleep(1000);
                  System.out.println("Nope, it doesnt...again.");
              } catch(InterruptedException v){System.out.println(v);}
          }
      };
  }

问题答案:

您正在线程one.start()方法中调用该方法run。但是run只有在线程已经启动时才调用该方法。改为这样做:

one = new Thread() {
    public void run() {
        try {
            System.out.println("Does it work?");

            Thread.sleep(1000);

            System.out.println("Nope, it doesnt...again.");
        } catch(InterruptedException v) {
            System.out.println(v);
        }
    }  
};

one.start();


 类似资料:
  • 问题内容: 我正在尝试使用从套接字检索的InputStream创建新的ObjectInputStream。这是我的代码: 这是我的MessageGetterSender类的构造函数。程序无法到达Checkpoint 4。 我正在从连接到服务器以获取套接字的类中实例化一个新的MessageGetterSender对象。这是相关的代码。它是InstantMessageClass的构造函数,Instan

  • 问题内容: 假设我有一个名为的课程, 我想创建一个新的ArrayList,其值将为type 。 我的问题是:我该怎么做? 我不懂Java Api。 我尝试了这个: 问题答案: 您正在寻找Java泛型 这是一个教程http://docs.oracle.com/javase/tutorial/java/generics/index.html

  • 问题 你创建一个工作者线程池,用来响应客户端请求或执行其他的工作。 解决方案 concurrent.futures 函数库有一个 ThreadPoolExecutor 类可以被用来完成这个任务。 下面是一个简单的TCP服务器,使用了一个线程池来响应客户端: from socket import AF_INET, SOCK_STREAM, socket from concurrent.futures

  • 问题内容: 由于这个错误,我已经阅读,测试并在墙上摔了头一天。 我在名为这样的类中有一些Java代码,如下所示 我一直在调整JVM设置(从1到15G的任何地方)和(从104k到512M的任何地方)。服务器具有24 GB的RAM,但还必须运行支持该程序的数据库。 创建2-20个线程之后(程序中其他地方也有几十个线程),我得到了错误 产量: 发生这种情况时,系统上总是有大量的可用内存,其他程序继续可以

  • 我必须创建一个新的类来创建一个全新的PaintComponent()吗?或者我会简单地创建一个新的Graphics2D对象,这样我就可以使用不同的字体、颜色等等?我想最让我困惑的是我不能调用不同的draw方法,因为我仍然需要传递g2d作为参数。因此,在我看来,我需要从另一个已经有g2d对象的方法中创建线程。 如果这让我感到困惑,我很抱歉,因为我仍然是Java的初学者。如果你需要更多的信息,尽管告诉

  • It doesn’t matter if you have an existing repository/directory of code, or if you are starting a completely new project, adding Yarn works the same way every time. In your terminal/console in the dire