Pozastaveni vlakna z jine tridy – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pozastaveni vlakna z jine tridy – Java – Fórum – Programujte.comPozastaveni vlakna z jine tridy – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
polerok0
Návštěvník
26. 1. 2011   #1
-
0
-

Potreboval bych pozastavit bezici vlakno (suspend()) z jine tridy nez bylo spusteno. Nejak se mi to nedari, nebyla by rada? Dik predem...

Nahlásit jako SPAM
IP: 80.188.106.–
Reklama
Reklama
nervak0
Věrný člen
26. 1. 2011   #2
-
0
-

Musíš tam nějak propašovat referenci na to vlákno. Pokud je, podobně jako s tím GUI, jen jedno, tak to stačí hodit do statické proměnné a v té druhé třídě si to z té první vytáhnout.

Nahlásit jako SPAM
IP: 213.211.51.–
nervak0
Věrný člen
26. 1. 2011   #3
-
0
-

Musíš tam nějak propašovat referenci na to vlákno. Pokud je, podobně jako s tím GUI, jen jedno, tak to stačí hodit do statické proměnné a v té druhé třídě si to z té první vytáhnout.

Nahlásit jako SPAM
IP: 213.211.51.–
polerok0
Návštěvník
26. 1. 2011   #4
-
0
-

JJ, je to stejny softik... Pridal jsem tlacitko, ktere by to melo pauznout a pak zase rozjet.
Ok, dik za tip, mrknu na to :o)

Nahlásit jako SPAM
IP: 80.188.106.–
polerok0
Návštěvník
26. 1. 2011   #5
-
0
-

To nervak :
Nejak se mi to nedari udelat si tu referenci, nemel bys nejaky help? THX predem...

Nahlásit jako SPAM
IP: 80.188.106.–
nervak0
Věrný člen
28. 1. 2011   #6
-
0
-

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.html

Nahlásit jako SPAM
IP: 213.211.51.–
polerok0
Návštěvník
28. 1. 2011   #7
-
0
-

No jo.... To bych vsechno chapal, ale dedit 2 tridy prece v jave nejde?!

Nahlásit jako SPAM
IP: 80.188.106.–
nervak0
Věrný člen
28. 1. 2011   #8
-
0
-

Nepotř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(); }
}

Nahlásit jako SPAM
IP: 213.211.51.–
polerok0
Návštěvník
31. 1. 2011   #9
-
0
-

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

Nahlásit jako SPAM
IP: 80.188.106.–
polerok0
Návštěvník
31. 1. 2011   #10
-
0
-

Respektive ja to dokazu zavolat ale prikaz se neprovede....

Nahlásit jako SPAM
IP: 80.188.106.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 49 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý