Von Thread aus andere Thread schlafen legen!



  • Hallo zusammen,

    ich habe eine Masterthread, der andere Threads kennt und beobachtet.
    Wenn nun ein Thread zu oft dran kam, will ich den entsprechenden vom
    Masterthread aus für eine gewisse Zeit schlafen legen.

    Der Master hat alle Threadobjekte in einer ArrayList gespeichert.
    Ich habs vom Master aus so versucht:

    list.get(i).sleep(10000);
    

    Leider läuft der betreffende Thread munter weiter!

    Was mache ich falsch?

    Danke

    curry-king



  • Thread.sleep ist auch static.



  • Wie kann ich es dann machen?



  • Spontan fällt mir nur diese umständliche Art ein: (ist aber irgendwie doof... 👎 )

    public class MyThread extends Thread
    {
      private long sleep;
    
      public void sleep(long l)
      {
        sleep=l;
      }
    
      public void run()
      {
        try
        {
          while(...)
          {
            if(sleep>0)
            {
              Thread.sleep(sleep);
              sleep=0;
            }
    
            /* ... */
          }
        }
        catch(InterruptedException e)
        {}
      }
    }
    

Anmelden zum Antworten