java - 我需要为此使用线程吗?

标签 java multithreading

目前,该程序的输出是

嗨 你好 再见 你好 古腾标签 你怎么用英语说你好? 你怎么用西类牙语打招呼? 意大利语你好怎么说? 你怎么用法语打招呼? 你好用德语怎么说?

这是我所期望的,但我的目的是让输出更像这样:

用英语怎么说你好? 你好 你怎么用西类牙语打招呼? 你好 意大利语你好怎么说? 再见 你怎么用法语打招呼? 你好 你好用德语怎么说? 谷腾标签

我的预测是我必须创建两个线程才能做到这一点?我不确定如何使用线程,但我只是想确保线程是我下一步需要研究的内容,以便找出如何做我想做的事情。这只是一个例子,我的实际代码有点复杂,我觉得这个例子更容易理解我的意图。

好的,这是我的代码:

package test;

public class Class {

  public static void main(String[] args) {
    sayHiLanguages();
    howToSayHi();
  }

  public static void sayHiLanguages() {
    sleepThread(1);
    System.out.println("Hi");
    sleepThread(1);
    System.out.println("Hola");
    sleepThread(1);
    System.out.println("Ciao");
    sleepThread(1);
    System.out.println("Bonjour");
    sleepThread(1);
    System.out.println("Guten tag");
  }

  public static void howToSayHi() {
    System.out.println("How do you say hi in English?");
    sleepThread(1);
    System.out.println("How do you say hi in Spanish?");
    sleepThread(1);
    System.out.println("How do you say hi in Italian?");
    sleepThread(1);
    System.out.println("How do you say hi in French?");
    sleepThread(1);
    System.out.println("How do you say hi in German?");
  }

  public static void sleepThread(long time) {
    try {
      Thread.sleep(time * 1000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

如果你们能指导我一篇关于线程的好文章,那就太好了!

最佳答案

过简单的生活 -

package test;

public class Class {

    public static void main(String[] args) {
        sayHiAsLanguages();
    }

    public static void sayHiAsLanguages() {
        new Thread(new Runnable(){
            public void run(){
                try{
                    //Change Thread sleep amount to see delay difference
                    System.out.println("How do you say hi in English?");
                    Thread.sleep(500);
                    System.out.println("Hi");

                    Thread.sleep(1000);
                    System.out.println("How do you say hi in Spanish?");
                    Thread.sleep(500);
                    System.out.println("Hola");

                    Thread.sleep(1000);
                    System.out.println("How do you say hi in Italian?");
                    Thread.sleep(500);
                    System.out.println("Ciao");

                    Thread.sleep(1000);
                    System.out.println("How do you say hi in French?");
                    Thread.sleep(500);
                    System.out.println("Bonjour");

                    Thread.sleep(1000);
                    System.out.println("How do you say hi in German?");
                    Thread.sleep(500);
                    System.out.println("Guten tag");

                }catch(InterruptedException ie){
                    ie.printStackTrace();
                }
            }
        }).start();
    }
}

关于java - 我需要为此使用线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731418/

相关文章:

c++ - 静态函数和类变量的访问

c - Linux 中的多线程服务器

multithreading - JMeter:tearDown Thread Group 的目的是什么

c# - 如何创建一个总是产生的任务?

multithreading - "EOSError 1400 - Invalid window handle"的可能原因

java - Spring Boot 将 JAX-WS webservice 注册为 bean

javascript - 如何将javascript的变量值传递给jsp中的java字符串

java - Visual Basic 或 VBScript 作为 Java 脚本引擎

java - 在java中将多个位置的本地日期时间转换为UTC

java - 有没有一种简单的方法可以从 Maven POM 生成 Ant 构建脚本?