2016-04-19 5 views
0

В настоящее время выход этой программыМне нужно использовать потоки для этого?

Hi Hola Ciao Bonjour Guten tag How do you say hi in English? How do you say hi in Spanish? How do you say hi in Italian? How do you say hi in French? How do you say hi in German?

Что я ожидал, но мое намерение для вывода будет больше, как это:

How do you say hi in English? Hi How do you say hi in Spanish? Hola How do you say hi in Italian? Ciao How do you say hi in French? Bonjour How do you say hi in German? Guten tag

Мой прогноз что я должен сделать два потока, чтобы сделать это? Я не уверен, как использовать потоки, но я просто хочу убедиться, что потоки - это то, что я должен исследовать дальше, чтобы выяснить, как делать то, что я хочу делать. Это всего лишь пример, мой фактический код немного сложнее, и я чувствую, что этот пример - более простой способ понять мои намерения.

Итак, вот мой код:

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(); 
 
    } 
 
    } 
 
}

Если вы, ребята, могли бы направить меня на хорошую статью о потоках, которые было бы здорово!

+1

Это не та ситуация, которая требует многопоточности. См. Раздел по многопоточности в книге SCJP от Kathy Sierra и Bert Bates. – user3516726

+1

Подумайте о том, что вы хотите - спросите - ответьте - спросите - ответьте и т. Д. –

+0

Как указано выше: «Я не уверен, как использовать потоки, но я просто хочу убедиться, что потоки - это то, что я чтобы исследовать дальше, чтобы выяснить, как делать то, что я хочу сделать ... Это всего лишь пример, мой фактический код немного сложнее, и я чувствую, что этот пример - более простой способ понять мои намерения ». – Kaelinator

ответ

1

Живая жизнь простой -

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(); 
    } 
} 
0

Если вам не нужны методы, я бы рекомендовал использовать два списка и выполнить итерацию через них.

List<String> answers = new ArrayList<>(); 
answers.add("Hi"); 
answers.add("Hola"); 
answers.add("Ciao"); 
answers.add("Bonjour"); 
answers.add("Guten tag"); 

List<String> questions = new ArrayList<>(); 
questions.add("How do you say hi in English?"); 
questions.add("How do you say hi in Spanish?"); 
questions.add("How do you say hi in Italian?"); 
questions.add("How do you say hi in French?"); 
questions.add("How do you say hi in German?"); 

for(int i = 0; i < answers.size(); i++) 
{ 
    System.out.println(questions[i]) 
    System.out.println(answers[i]) 
} 

Если вы собираетесь использовать это, я бы также рекомендовал создать метод, чтобы быстро добавлять в эти списки.

addToLists(String question, String answer) 
{ 
    question.add(question); //question.add("How do you say hi in " + question); would make it even easier 
    answers.add(answer); 
} 
+0

Спасибо за это, но поскольку код, который у меня выше, является просто примером, я могу Не применяйте свой ответ к моему коду. – Kaelinator

+0

@Kaelinator Что именно вы делаете в своем коде? Можете ли вы загрузить его где-нибудь? –

+0

Да, вот пастебин: http://pastebin.com/932X0z7s Это код после того, как я использовал ответ ArifMustafa, который решил мою проблему * 10 – Kaelinator

Смежные вопросы