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. Olivia Oras

      "Yle MOT:n tietojen mukaan Oras oli joutunut sairaalahoitoon helsinkiläisellä kauneusklinikalla tehdyn rasvaimun yhteyde
      Kotimaiset julkkisjuorut
      155
      2167
    2. MOT: Nuoren Olivia Oraksen, 27 surullinen kuolema kauneusoperaatiossa :(

      MOT:n tietojen mukaan Oras menetti tajuntansa rasvaimua edeltäneessä puudutuksessa. Hänet kuljetettiin Husiin, ja hän ku
      Maailman menoa
      134
      1221
    3. Sanoppa ihan rohkeasti

      Mun huonot puolet! En suutu…
      Ikävä
      142
      1175
    4. Koska muru nähdään

      Kaksin?
      Ikävä
      47
      991
    5. Haluatko että unohdan sinut kokonaan

      Siihen suuntaan ollaan menossa, nyt jo. Ja ehkä parempi näin, niin ei kulu energiaa hukkaan mahdottomuuteen. Ja vaikka j
      Ikävä
      72
      968
    6. Minä vuonna kaivittusi on syntynyt?

      Vastausta tässä kaivataan.
      Ikävä
      60
      906
    7. Pelkäätkö häntä?

      👍
      Ikävä
      78
      739
    8. Millä nimellä

      kutsut kaivattuasi omassa mielessäsi?
      Ikävä
      38
      727
    9. Olit mulle tärkeä...

      😭
      Ikävä
      34
      697
    10. Ylen typerät rinnastukset.

      Näin YLE…..Saksassa ei ole äärioikeisto ollut vallassa sitten Hitlerin . YLEn toimittajille tiedoksi . Hitler oli Saksan
      Maailman menoa
      245
      674
    Aihe