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

316

    Vastaukset 1

    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. Naiset ymmärtävät ettei talous lähde nousuun

      Miten paljon järjellisempi olento nainen onkaan kuin tilastollisestikin paremmin tienaava mies. Kun kaikkialla puskuroid
      Maailman menoa
      155
      1037
    2. En jaksa

      Enää pelleillä ja paljastan J naisen nimen. Se on Jonna ja hän ei koskaan, edes luultavasti ollut täällä. Silti piene
      Ikävä
      44
      707
    3. Kissa eli kivuissa useita viikkoja

      Ei vienyt lääkäriin vaikka kissa parka maukui ja moni seuraajakin (minäkin) näin että kissa on sairas.
      Tuusniemi
      127
      651
    4. Minkälainen nainen

      Minkälainen kaipaamasi nainen on luonteeltaan? Kaikki hassun hauskat antava ja helppo on sallittuja, jos poikien on kovi
      Ikävä
      23
      638
    5. Yksi asia sen esti

      Etten antanut meille mahdollisuutta
      Ikävä
      43
      617
    6. Okei, eli olet rakastunut

      Hyvä sinä, niin minäkin.
      Ikävä
      67
      605
    7. Martinan mauton tyyli

      Voi hyvää päivää 🤣 nyt ollaan oltu Muhiksen kanssa Kultareservin avajaisissa suorat housut jalassa ja 500€ korsetti pää
      Kotimaiset julkkisjuorut
      160
      565
    8. Jos meillä olisi yhteinen koti

      Niin haittaisiko sinua pitää se vähä tavaraisena? Ajattelin tänään että jos joskus asuttaisiin yhdessä ja haluaisit pal
      Ikävä
      51
      547
    9. Arvaako kukaan?

      "Humalojalla metalliromun keräyspaikalla on kulkenut pitkin kevättä ja kesää joku henkilö, joka on vienyt sieltä kymmeni
      Haapavesi
      34
      544
    10. Tuntuu pahalta meidän molempien puolesta

      Anteeksi, että olen tällainen pelkuri. En vaan usko rakkauteen enää miehen ja naisen välillä omalla kohdalla. Tiedän, et
      Ikävä
      34
      518
    Aihe