【问题标题】:What is "inline thread"?什么是“内联线程”?
【发布时间】:2010-01-04 15:33:23
【问题描述】:

“内联线程”是什么意思?

我在最近一次采访中遇到了这个问题。有人用过吗?

【问题讨论】:

  • 听起来像雾里看花,我从未听说过这个词。但是有这个答案wiki.answers.com/Q/What_is_inline_thread_in_java
  • 哇,这是我第一次看到 wikianswers 提供了有用的答案。
  • 猜猜我这次面试会失败。 (这是一个可怕的问题,因为(a)inline 用于创建对象的这种用法远非官方或广泛使用,并且(b)它与线程无关,创建表达式的形式不影响线程这是创建的。你可以说它是一个内联的Thread,但这样的大写和引用不会出现在问题的口头框架中。)

标签: java multithreading


【解决方案1】:

我相信是指创建一个匿名类扩展Thread并在同一行代码中调用它的start方法的做法。

(new Thread() {
  public void run() {
    // do stuff
  }
 }).start();

如其他地方所述,这不是“官方”Java 术语。但我认为,如果只是为了交流,了解如何以不同方式引用概念仍然是件好事。

【讨论】:

    【解决方案2】:

    “内联线程”在 Java 中不是一个既定术语。这是一个糟糕的问题。

    有些人似乎使用该术语来表示使用匿名类定义的线程,如其他答案所示。但同样,这不是官方的,甚至不是广泛的用法,也不是您可以有效衡量某人 Java 知识的东西。

    【讨论】:

    • 有些人可能认为这是一个合理的问题来评估候选人以交互方式清除拙劣沟通的能力。
    • 这可能不是一个既定的术语,但事实是,我用这个关键词在网上找到了一个例子,我找到了很多像danben提供的例子。那么究竟什么是“成立”???
    【解决方案3】:

    我猜这意味着创建一个类似于...的线程

    new Thread(
      new Runnable() {
    
          public void run() {
             ...
          }
    }).start();
    

    【讨论】:

      【解决方案4】:

      这实际上只是匿名头号的另一个名字。

      ( new Thread() { public void run() { 
      // do something 
      } } ).start(); 
      

      【讨论】:

        【解决方案5】:

        其他答案有点过时了。

        您可以将Threads 与lambdas 一起使用:

        new Thread(() -> doSomething()).start();
        

        它简短、精确并且仍然非常易读(即优雅)。

        【讨论】:

          猜你喜欢
          • 2021-12-09
          • 2010-12-05
          • 2011-08-06
          • 2013-02-02
          • 2011-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多