Keskustelevat säikeet harjoitus

apua tarvittais :/

Osaisiko joku neuvoa miten seuraavan koodin saa toimimaan niin että säikeet "keskustelevat" keskenään, eli A ja B sanovat yhden lauseen vuorollaan?

----- KOODI ALKAA ------

private class T1 extends Thread
{

private void sano(String str)
{
System.out.println("A: " str);
}
   
public void run()
{       
sano("Terve!");
sano("Mitäs kuuluu?");
sano("Ihan hyvää kanssa");
sano("OK, näkyillään!");
sano("Moimoi!");
}

private class T2 extends Thread
{

public void sano(String str)
{
System.out.println("B: " str);
}
   
public void run()
{
sano("No terve!");
sano("Kiitos ihan hyvää, entä itsellesi?");
sano("Sehän on mukavaa, minun pitää nyt mennä");
sano("Moi!");
}

private T1 t1 = new T1();
private T2 t2 = new T2();

public void keskustele()
{
t1.start();
t2.start();
}

---- KOODI LOPPUU ---------

Nyt kun keskustele-metodia kutsuu niin vuorosanat tulee miten sattuu.
   

1

310

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Yksinkertainen esimerkki

      Löytyisi varmaan valmiitakin ratkaisuja...


      --- ESIMERKKI ALKAA ---

      public class Esimerkki
      {
         private class PuhevuoronMyöntäjä
         {
            private int vuoro;
            
            public PuhevuoronMyöntäjä(int vuoronumero) {
               vuoro = vuoronumero;
            }
            
            public void odotaOmaaPuhevuoroa(int vuoronumero) {
               while(vuoro != vuoronumero);
            }
            
            public void annaPuhevuoroToiselle(int vuoronumero) {
               vuoro = vuoronumero;
            }
         }
         
         
         private PuhevuoronMyöntäjä puhevuoro = new PuhevuoronMyöntäjä(1);   
         
         
         private class T1 extends Thread
         {
            private void sano(String str)
            {
               puhevuoro.odotaOmaaPuhevuoroa(1);
               System.out.println("A: " str);
               puhevuoro.annaPuhevuoroToiselle(2);
            }
            
            public void run()
            {
               sano("Terve!");
               sano("Mitäs kuuluu?");
               sano("Ihan hyvää kanssa");
               sano("OK, näkyillään!");
               sano("Moimoi!");
            }
         }
         
         
         private class T2 extends Thread
         {
            public void sano(String str)
            {
               puhevuoro.odotaOmaaPuhevuoroa(2);
               System.out.println("B: " str);
               puhevuoro.annaPuhevuoroToiselle(1);
            }

            public void run()
            {
               sano("No terve!");
               sano("Kiitos ihan hyvää, entä itsellesi?");
               sano("Sehän on mukavaa, minun pitää nyt mennä");
               sano("Moi!");
            }
         }

         
         private T1 t1 = new T1();
         private T2 t2 = new T2();

         
         public void keskustele() {
            t1.start();
            t2.start();
         }
         
         
         public static void main(String[] args) {
            new Esimerkki().keskustele();
         }
      }

      --- ESIMERKKI LOPPUU ---

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Veroaste on Suomessa viitisen prosenttiyksikköä liian matala

      Veropohjaa on rapautettu käytännössä koko kulunut vuosituhat, jonka vuoksi valtion menoja on jouduttu rahoittamaan velka
      Maailman menoa
      86
      2483
    2. Tiedän satavarmasti ettet tule koskaan

      Uskaltamaan mitään. Ei me tulla edes näkemään koskaan.
      Ikävä
      67
      1435
    3. Kyläkauppias ajoi kännissä töistä kotiin

      Ei edes kallis auto estä humalassa ajamista, vaikka luulisi alkolukko olevan sellaisessa jo vakiovarusteena. https://ww
      Maailman menoa
      81
      1321
    4. EU komissio - EU-elpymisrahoja voidaan käyttää TILAPÄISESTI väärin!

      Espanja ohjasi miljardeja euroja – Nyt EU-komissio teki yllättävän paljastuksen Skandaaliksi noussut Espanjan EU-rahoje
      Maailman menoa
      11
      1192
    5. Miks me oikein

      Rakastuttiin vaikka kaikki on mahdotonta?
      Ikävä
      79
      905
    6. Kiitos upeasta palvelusta kukkamyyjä

      Kiitos sinulle upea kaunis kukkamyyjä Kuhmon torilla 🌹 Upea iloinen asenteesi ja kaunis hymysi pelasti päiväni ❤️ Jäi
      Kuhmo
      19
      890
    7. Nainen, mikset lähetä

      miehelle viestiä? Tiedän, että sulla on asiaa ja kysyttävää.
      Ikävä
      54
      763
    8. Ratikka Turkuun

      Ei hyvä. Ja syy on siinä , kukaan ei osaa suunnitella oikeaa reittiä. Pitää huomioide, kiskoja sijaintia ei voi muutta
      Turku
      101
      750
    9. Miehet trikoissaan

      On se kauhian näkköistä, kun miehet tiukossa trikkoissa juoksentelloo ja mulukku paestaa trikkoijjen läpi. Kahtokkee pe
      Suomussalmi
      30
      743
    10. Rakastan sinua

      Yhä.
      Ikävä
      30
      696
    Aihe