przeciazanie run()

0

Witam

Czy mozna wywolac metodę dajmy na to run(String s) przeciazona bez wywolywania run()

Bo zastanawiam sie bardziej teoretyzujac (przed zblizajacym sie SCJP) co daje przeciazenie run(String)

dajmy na to taka klase:

EDITED:

class Thb extends java.lang.Thread{
	
	Thb(){
	start();
	run("sss");
	}
	
	public void run(){
		run("bbbb");
	}
	
	
	public void run(String s){
		for(int i=0; i<=10;i++){
			System.out.println("thread"+ s +" i= "+i+"\t CT:"+Thread.currentThread());
		}
	}
	
}

EDITED: no wlasnie nie :|
Przykladowy wynik :

threadbbbb i= 0 CT:Thread[Thread-0,5,main]
threadsss i= 0 CT:Thread[main,5,main]
threadbbbb i= 1 CT:Thread[Thread-0,5,main]
threadsss i= 1 CT:Thread[main,5,main]
threadbbbb i= 2 CT:Thread[Thread-0,5,main]
threadsss i= 2 CT:Thread[main,5,main]
threadbbbb i= 3 CT:Thread[Thread-0,5,main]
threadsss i= 3 CT:Thread[main,5,main]
threadbbbb i= 4 CT:Thread[Thread-0,5,main]
threadbbbb i= 5 CT:Thread[Thread-0,5,main]
threadbbbb i= 6 CT:Thread[Thread-0,5,main]
threadsss i= 4 CT:Thread[main,5,main]
threadbbbb i= 7 CT:Thread[Thread-0,5,main]
threadsss i= 5 CT:Thread[main,5,main]
threadbbbb i= 8 CT:Thread[Thread-0,5,main]
threadsss i= 6 CT:Thread[main,5,main]
threadbbbb i= 9 CT:Thread[Thread-0,5,main]
threadsss i= 7 CT:Thread[main,5,main]
threadsss i= 8 CT:Thread[main,5,main]
threadsss i= 9 CT:Thread[main,5,main]
threadsss i= 10 CT:Thread[main,5,main]
threadbbbb i= 10 CT:Thread[Thread-0,5,main]

dlaczeggo wywolanie run("sss") ma w curentThredzie maina ?

Czy w clasie Thread nowy watek jest "w granicach" metody run()? a w innych miejscach nadal jest watek glowny?

0

run(String) to najzwyklejsza metoda niczym nie różniąca się od alaMaKota(String)

W twoim kodzie działają dokładnie 2 wątki:
-1. wywołuje kolejno Thb(), start() (startuje 2. wątek), run("sss")
-2. wywołuje run(), run("bbbb")

Tak się nie używa wątków.

Thb thb = new Thb("Ala ma kota"); //tworzymy obiekt wątku
thb.start(); //tworzymy wątek natywny i go startujemy
class Thb extends java.lang.Thread{
        String s;

        Thb(String s){
               this.s = s;
        }
       
        public void run(){
                 for(int i=0; i<=10;i++){
                        System.out.println("thread"+ s +" i= "+i);
                }
        }       
}

Czy naprawdę myślisz, że taki kod tworzy jakieś dodatkowe wątki?

  public void run(){
           for(int i=0; i<=10;i++){
                    System.out.println(Thread.currentThread());
           }
        }
0
__krzysiek85 napisał(a)

W twoim kodzie działają dokładnie 2 wątki:
-1. wywołuje kolejno Thb(), start() (startuje 2. wątek), run("sss")
-2. wywołuje run(), run("bbbb")

yhy wlasnie pare testow to wykazalo ... wyedytowalem wczesniej ten post

__krzysiek85 napisał(a)

Tak się nie używa wątków.

Wiem wiem chodzi mi teraz o pule pytan z cyklu podchwytliwe ;]

Do pytania wyedytowanego: no pewnie ze nie ;] sprawdzalem z jakiego watku jest wywolywane tym samym potwierdzilem to co napisales

__krzysiek85 napisał(a)

W twoim kodzie działają dokładnie 2 wątki:
-1. wywołuje kolejno Thb(), start() (startuje 2. wątek), run("sss")
-2. wywołuje run(), run("bbbb")

Ok bo sie z tym edytowaniami pogubilem :-D ok dzieki za info juz wiem co i jak

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