2016-04-08 28 views
1

Yan yana hareket eden bir yükleme kelimesini göstermek için basit bir kod yazdım. Bir önceki baskı devam ederken başka bir dize yazdırmak mümkün mü?Diğeri basmaya devam ederken bir dizeyi nasıl yazdırabilirim?

Bu gibi görünecektir:
yüklenen ana dosya

..loading (kelime hareket ediyor).
Yedekleme dosyası yüklendi.
.... sonraki hatları için kod yükleme kodu ile ayrılmış verilsin

(doldurulması, hareket ederken, bu hat sadece bir kez basılır).

Yükleme kelime kodu:

public static void main(String[] args) throws Exception 
    { 
     for (int i=0; i<86; i++) 
     { 
      if (i%17 == 0) 
       System.out.print(".......... \r"); 
      if (i%17 == 1) 
       System.out.print(".........L \r"); 
      if (i%17 == 2) 
       System.out.print("........Lo \r"); 
      if (i%17 == 3) 
       System.out.print(".......Loa \r"); 
      if (i%17 == 4) 
       System.out.print("......Load \r"); 
      if (i%17 == 5) 
       System.out.print(".....Laodi \r"); 
      if (i%17 == 6) 
       System.out.print("....Loadin \r"); 
      if (i%17 == 7) 
       System.out.print("...Loading \r"); 
      if (i%17 == 8) 
       System.out.print("..Loading. \r"); 
      if (i%17 == 9) 
       System.out.print(".Loading.. \r"); 
      if (i%17 == 10) 
       System.out.print("Loading... \r"); 
      if (i%17 == 11) 
       System.out.print("oading.... \r"); 
      if (i%17 == 12) 
       System.out.print("ading..... \r"); 
      if (i%17 == 13) 
       System.out.print("ding...... \r"); 
      if (i%17 == 14) 
       System.out.print("ing....... \r"); 
      if (i%17 == 15) 
       System.out.print("ng........ \r"); 
      if (i%17 == 16) 
       System.out.print("g......... \r"); 


      Thread.sleep(150); 
     } 

    } 
+0

Windows'taki kodu komut isteminde çalıştırıyorum. – farshad

cevap

1

.

bir iplik, java bir süreçtir eşzamanlılık denir bilgisayar bilgisinde, şeylerin bu tür kod ana iş parçacığı işlemcide yürütülüyor ama aynı anda başka şeyler yapmak için başka bir hesap oluşturabilirsiniz.

Sana Java parçacığı hakkında daha fazla şey öğrenmek tavsiye, belki bu size yardımcı olabilecek: http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html

diğer tarafta için, başka dize koymak için koşullar sonunda bir System.out.println koyabilirsiniz.

1

ayrı bir Thread içinde bunu yapmak zorunda. Ne yazık ki, print sırasında iki parçanızın bir içerik anahtarına sahip olmayacağından emin olmanız gerekir. loading ve COUNTING kelimelerini yazdırmak istediğinizi varsayalım. Daha sonra, herhangi bir senkronizasyon olmadan, basılı mesajların şu şekilde olması muhtemeldir: loCOUaNTdiINGing.

burada Java eşzamanlılık hakkında okuyunuz: Adam bir iplik kullanması gerektiğini size söylemek triying edilir http://tutorials.jenkov.com/java-concurrency/index.html

+0

Biraz daha açıklayabilir misiniz lütfen? – farshad

+1

@farshad Aynı anda birden fazla şey yazdırmak için birden fazla iş parçacığı çalıştırmanız ve eşitlendiğinden emin olmanız gerekir. Hangi iplik 2 (diğer şeyler arasında) tekrarını önlemek için, (ler) iplik 1 tarafından yazdırılan hangi karakter bilmek gerekir anlamına gelir. Adam tarafından sunulan güzel bağlantıdan başka, [bu bir diğeri] (http://www.tutorialspoint.com/java/java_multithreading.htm) sizin için ilgi çekici olabilir. –

+0

şimdi ben ama benim gibi bir acemi için yapılacak gelişmiş bir şey gibi görünüyor kullanarak nasıl çalıştığını anlamak, ama ben kesinlikle bu konuda daha fazla bilgi edinmek için çalışacağım. Gerçekten kullanışlı olabilir. – farshad