Potreboval bych pozastavit bezici vlakno (suspend()) z jine tridy nez bylo spusteno. Nejak se mi to nedari, nebyla by rada? Dik predem...
Fórum › Java
Pozastaveni vlakna z jine tridy
Vždyť je to proměnná, jako každá jiná. Třeba tady jsou dvě vlákna, Stopper a Worker, Stopper dostane konstruktorem referenci na Worker.
public class Suspend
{
public static void main(String args[])
{
Worker w = new Worker();
Stopper s = new Stopper(w);
w.start();
s.start();
}
}
class Worker extends Thread
{
public void run()
{
while (true)
System.out.print("xyz");
}
}
class Stopper extends Thread
{
Thread thread;
public Stopper(Thread thread)
{
this.thread = thread;
}
public void run()
{
while (true) {
try {
thread.suspend();
sleep(2000);
thread.resume();
sleep(1000);
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
}
}
}
}
Akorát bys asi místo suspend a resume měl používat vlastní signalizaci. Viz. Java Thread Primitive Deprecation http://download.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.htmlNepotřebuješ nic dědit, jen předáváš proměnné.
public class Main
{
public static void main(String args[])
{
A a = new A(); B b = new B(); C c = new C(); D d = new D();
d.set(a,b,c);
d.run();
}
}
class A { public void a() { System.out.println("a"); } }
class B { public void b() { System.out.println("b"); } }
class C { public void c() { System.out.println("c"); } }
class D {
A a; B b; C c;
public void set(A aa, B bb, C cc) { a = aa; b = bb; c = cc; }
public void run() { a.a(); b.b(); c.c(); }
}
Hmm, tak stale se nedari.... Z toho tveho prikladu to proste vubec nechapu. Respektive chapu tvuj priklad, ale nechapu jak ho aplikovat na sve reseni sw kdy v jednom class to jede a z druheho chci zavolat stop do toho prvniho....
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 5 hostů
Podobná vlákna
Změna vlastnosti třídy Windows1 z jiné třídy — založil davedpe
C++ - Třídy (Export funkcí z třídy do jiné) — založil CodeHustla
Konstruktor z jine tridy — založil Dagi
C# Výpis hodnoty z jiné třídy — založil itlady
Použití gettru() z jiné třídy — založil Anonym
Moderátoři diskuze