Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

spori konstruktor ili thread u konstruktoru + JProgressBar?

[es] :: Java :: spori konstruktor ili thread u konstruktoru + JProgressBar?

[ Pregleda: 3294 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sigma**2

Član broj: 63829
Poruke: 37
*.static.sbb.co.yu.



+1 Profil

icon spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 11:57 - pre 208 meseci
Imam klasu i jedan njen konstruktor se sporo izvrsava ( i treba da se izvrsava sporo jer je tako modeliran, i to je u redu i nije to pitanje).
Radi lakseg razumevanja, zamislite da u konstruktoru imam neki dugacak loop.


Moje pitanje je sledece:
Na koji nacin, ako je ikako moguce, mogu da konstruktor tretiram kao thread?

1. Cini mi se da ne mogu u okviru konstruktora da imam realizovan neki Runnable(){...}
jer ce mi se objekat instancirati iako nije sve zavrseno (?)
2. Kada instanciranje pozivam iz neke druge klase, i iz nekog threada, sve radi OK, ali nemam informaciju dokle je taj moj loop unutar konstruktora stigao.

A, sve ovo mi je potrebno da bih mogao da pomocu JProgressBara pratim kako se instanciranje odvija.

Nadam se da sam bio bar malo jasan, kod mi je glomazan pa nema svrhe da ga ovde spustam.


 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ns.ac.yu.



+6 Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 12:15 - pre 208 meseci
Verovatno ti je los dizajn.
Svrha konstruktora jeste da vrsi inicijalizaciju.
Sta konkretno radis u njemu pa ti se on sporo izvrsava?
Probaj da izmestis taj kod u neku metodu koju ces pozvati iz nekog threada ili nesto slicno tome.
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

sigma**2

Član broj: 63829
Poruke: 37
*.static.sbb.co.yu.



+1 Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 12:27 - pre 208 meseci
Klasa o kojoj je rec ima nekoliko konstruktora, i jedan od njih kao argument ima kolekciju.
Ta kolekcija u nekim slucajevima moze da bude velika.
Objekat nije pravilno instanciran ako nije cela kolekcija obradjena, pa stoga i jeste izmodelirano tako, jer bi u obrnutom , ako bi se loop kolekcije izmestio van, objekat bio "nepotpun" sve do kraja petlje.
Znam da programerski to mogu da odradim tako sto cu uraditi kako predlazes, ali ovde se i radi upravo o tome sto je ovako pravilno izmodelirano.

Citat:
Toxter:
Svrha konstruktora jeste da vrsi inicijalizaciju.

Ne bih se u potpunosti slozio. Svrha konstrukora je da se "rodi" ispravan objekat, koji odmah nakon radjanja moze da zivi i da je u potpunosti funkcionalan. Naravno, da programerski mozes sebi da dopustis i da se rodi nepotpun objekat, pa da mu pre nego sto profunkcionise dodajes neophodne cinioce.
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ADSL.neobee.net.



+6 Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 13:08 - pre 208 meseci
Citat:
sigma**2:... ali ovde se i radi upravo o tome sto je ovako pravilno izmodelirano.

Evo ponovicu jos jednom: ne valja ti dizajn. Radis nepotrebno procesiranje u konstruktoru.
Citat:
sigma**2:
Ne bih se u potpunosti slozio. Svrha konstrukora je da se "rodi" ispravan objekat, koji odmah nakon radjanja moze da zivi i da je u potpunosti funkcionalan. Naravno, da programerski mozes sebi da dopustis i da se rodi nepotpun objekat, pa da mu pre nego sto profunkcionise dodajes neophodne cinioce.

Ne znam sta znaci: 'da se rodi nepotpun objekat' ???
Atributi klase ce svakako poprimiti neke vrednosti tako da se ne moze desiti da imas objekat kod
koga imas nepotpune atribute tj. nekim atributima nemas pristup.
Svrha konstruktora jeste da vrsi inicijalizaciju atributa klase.
Ti mozes u njega da strpas sta god hoces, sto si ti ocigledno i uradio, ali to nije njegova svrha.
Znaci potrebno je da bude sto kraci i da odradi ono sto mu je svrha, tj. da dohvatis objekat ciji je
on kostruktor sto pre.
Zatim dalje radis sa tim objektom ono sto zelis (kao sto je ta tvoja obrada kolekcije).

Postuj kod pa cu moci konkretnije da ti pomognem.
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

me-tuzalem
mensur tuzalemovic
novi pazar

Član broj: 25730
Poruke: 116
*.dynamic.sbb.co.yu.



Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 17:33 - pre 208 meseci
Ako dobro razumijem dilemu, stvar stoji ovako:

Ako do kraja poštuješ OO paradigmu, a čini mi se da na tome insistiraš, onda ni ne možeš u procesu "rađanja", kako ti kažeš, da znaš koliki procenat objekta se "rodio". Instanciranje znači kreiranje potpunog objekta(tu si u pravu). Nepotpuni objekat ne zna koliko je nepotpun. Ili se pomiri sa dugim čekanjem ili redizajniraj.

Ako ti rađanje traje dugo, i želiš da znaš da je "rođeno" 25%, 50% ... onda uvedi klasu npr. Babica, koja će biti thread, u kome se obrađuje tvoja kolekcija, i Babica zna kada je tvoj objekat kompletno rođen. (to je u skladu sa ovim što ti Toxter predlaže).
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.adsl.beotel.net.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?15.03.2007. u 18:18 - pre 208 meseci
Hmm posto pominjes u naslovu teme JProgressBar to u mnogocemu mirise na Swing :), nista posto je objekat tako velik ono sto savetujem jeste ostavi konstruktor da bude tako glomazan. Napravi swingworker, i u metodi doinbackground napravi objekt. Pa onda imas dve varijante, jedna je da postavljas progress, a druga je da iz konstruktora publishujes medjurezultate.


Za vise detalja http://java.sun.com/docs/books...uiswing/concurrency/index.html
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
*.dynamic.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: spori konstruktor ili thread u konstruktoru + JProgressBar?17.03.2007. u 10:33 - pre 208 meseci
Evo ti jedan primer koji moze da ti posluzi. Uporedno je ilustrovano koriscenje JProgressBara i sa "sporim konstruktorom" i na klasican nacin.
Deo koda sa sporim konstruktorom mi na nekim instalacijama "trokira", nadam se da ce na tvojoj da radi OK.
Bolje je da isprobas isti princip sa SwingWorker-om, jer ovo moje je malo rudimentarno resenje.
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Java :: spori konstruktor ili thread u konstruktoru + JProgressBar?

[ Pregleda: 3294 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.