wątki. start(); i interrupt();

0

Musze utworzyć dokładną ilość razy podaną przez użytkownika wątek. A później zatrzymać, mam taki kod, ale nie śmiga :( co jest nie tak? podpowie ktoś ?:D


for (int i = 0; i < iloscWatkow; i++){
       Aaa p = new Aaa(k, producent, czas); 
       p.start();
       }
Thread.sleep(1000);
    for (int i = 0; i < iloscWatkow; i++){
        p.interrupt();
        }

Tu jest problem p.interrupt(); tak jak by nie widział obiektu p

0

Wiem, że jest problem z programistami nieumiejącymi pisać wielowątkowo, ale wydaje mi się, że uczą tego za wcześnie. http://en.wikipedia.org/wiki/Scope_(computer_science)

0

 for (int i = 0; i < producent; i++){ 
       producenci[i] = "p"+i;
       Producent p = new Producent(k, producent, czas); 
       p.start();
       }

        Thread.sleep(1000); //jedna sekunda, 1000 milli-seconds

        for (int i = 0; i < producenci.length; i++){
        producenci[i].interrupt();
        }
0

Nie działa, bo ten kod nie ma najmniejszego sensu.
String raczej nie ma metody interrupt, nigdzie nie zapisujesz tych wątków, odpalasz i o nich zapominasz.
Bawienie się wielowątkowością(co jest już jednak trochę złożonym tematem) bez umiejętności posługiwania się zmiennymi jest złym pomysłem, a nawet tragicznym.

0

Producent[] Producenci = new Producent[producent];

       for (int i = 0; i < producent; i++){ 
       Producenci[i] = new Producent(k, producent, czas);

       Producenci[i].start();
       }
0

Ja tylko wtrącę swoje trzy grosze - otóż, żeby używanie interrupt() miało sens, to trzeba to oprogramować w wątku Producent :> np:

while (!isInterrupted()) {
 // wykonaj czesc dlugiego zadania
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0