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

Timeri i thread-ovi, DCOM server

[es] :: C/C++ programiranje :: Timeri i thread-ovi, DCOM server

[ Pregleda: 1927 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

erkan
Sarajevo

Član broj: 12339
Poruke: 267
195.222.35.*

ICQ: 238530669


Profil

icon Timeri i thread-ovi, DCOM server07.09.2004. u 15:44 - pre 239 meseci
Pozdrav svima, imam problem pa bih bio zahvalan na svakom korisnom savjetu.

U jednoj aplikaciji (DCOM server) prvobitno rjesenje
visenitnog rada je bilo relizovano koristenjem Timer-a. To mi se nije dopalo jer
u slucaju zastoja (recimo prilikom lose konekcije sa bazom) svi Timeri bi
stali. Tako da sam neke od Timera zamjenio Thread-ovima (iako sam mislio da su isto), ispostavilo se da Thread-ovi nastavljaju da rade bez problema u slucaju zastoja (za razliku od Timer-a).
Medjutim, u jednom od novonastalih tredova se pozivao i jedan Timer
(SetTimer(...)) koji nikada nije izvrsio funkciju koja je naznacena tj. nikada ne dolazi do nje. Taj problem je takodje rijesen tako sto sam zamjenio taj problematicni timer sa Thread-om i nastavilo je sa radom bez problema.
--------------------
Problem je u tome sto u aplikaciji (a projekat je dosta slozen po mom misljenju) ima jos nekakvih timera (10-ak) i tako da su se javili i ostali problemi, npr gubljenje TCP konekcije sa jednim serverom, iznenadno iskljucivanje kompletne aplikacije (nakon visesatnog rada) itd...
--------------------

Moze li mi neko reci koja je razlika izmedju Thread-a i Timer-a, i da li postoji neki
problem u njihovoj medjusobnoj interakciji, jer se na mom programu tako ispostavilo,
da li je zamjena svih Timera sa Thread-ovima pravo rjesenje (jer je ostalo jos njih zbog kojih smatram da je i doslo do gor navedenih problema...)


Hvala

Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
195.222.35.*

ICQ: 238530669


Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 15:53 - pre 239 meseci
Jos jedno pitanje ako moze?! :)
Da li se iz vise razlicitih Thread-ova moze pozivati jedna ista fja
i sta se u tom trenutku desava
Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 16:43 - pre 239 meseci
Timer (bar onaj koji se postavlja sa SetTimer) jednostavno pošalje WM_TIMER poruku u message queue niti. WM_TIMER ima nizak prioritet, pa je vrlo nezahvalno prognozirati kad će se pozvati funkcija koja obrađuje odgovor na tajmer. Sa druge strane, ako (iz jedne niti) setuješ više tajmera, siguran si da će se funkcije koje obrađuju odgovor na tajmer izvršavati sekvencijalno i nećeš morati da razmišljaš o sinhronizaciji.

Imaš i drugih vrsta tajmera (npr, multimedijalni) koji opale posebnu nit u kojoj se izvršava odgovor na tajmer. Ovakvi tajmeri su mnogo precizniji, ali i opasniji, jer moraš da vodiš računa o sinhronizaciji niti.

 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net



+1001 Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 18:38 - pre 239 meseci
Odgovor na tvoje drugo pitanje:

Moze li deset ljudi da u isto vreme otvori istu stranicu iz iste knjige recepata i da
napravi isto jelo, prema istom receptu ?

Odgovor: moze, ukoliko recept ne zahteva nesto jako specificno, sto postoji samo u
jednom primerku (na primer, jaje od noja, a u gradu postoji samo jedan noj, koji snosi
jedno jaje godisnje).

Tako je i sa funkcijama koje se zovu iz thread-a. Funkcije koje operisu samo sa svojim
internim promenljivama mogu da se zovu iz neogranicenog broja thread-ova. Naprotiv,
ako funkcija radi sa promenljivama malo sireg scope-a (globalne, staticke, class variables),
onda mora da se obrati paznja na sinhronizaciju. Funkcije ili biblioteke koje
imaju ugradjenu sinhronizaciju se obicno opisuju kao 'thread safe', a obicno su sporije
zbog gubitka vremena na lock-ovanju mutexa (semafora, kriticnih sekcija...)

Na kraju, u Windows okruzenju postoji jos jedno ogranicenje - worker thread ne bi
trebalo da zove ni jednu funkciju koja kontrolise glavni GUI thread. Umesto toga,
trebalo bi da salje poruke (PostMessage( ) ili SendMessage( )) glavnom thread-u.
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
195.252.64.*



+2 Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 22:27 - pre 239 meseci
Kakva je situacija kada u funkciji deklarises varijable kao static?
Da li u tom slucaju moze da dodje do mijesanja podataka kada se ista funkcija poziva iz vise thredova?



 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bos.east.verizon.net



+6 Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 22:38 - pre 239 meseci
Može.
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
*.vdial.verat.net



+3 Profil

icon Re: Timeri i thread-ovi, DCOM server07.09.2004. u 23:44 - pre 239 meseci
Jos jedan drawback vezan za WM_TIMER: Postovanje nove WM_TIMER poruke se preskace ako prethodno postovana WM_TIMER poruka nije obradjena.
O_o
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1001 Profil

icon Re: Timeri i thread-ovi, DCOM server08.09.2004. u 06:24 - pre 239 meseci
To moze da ispadne i vrlina - ako koristis multimedia timer, ako program pocne da
kasni sa obradom timer poziva, crash cele aplikacije je neizbezan.
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
195.222.35.*

ICQ: 238530669


Profil

icon Re: Timeri i thread-ovi, DCOM server08.09.2004. u 07:10 - pre 239 meseci
Hvala vam puno,
mislim da ce mi ove informacije pomoci, a ako bude
dodatnih problema -> javljam se ponovo :)
Hvala

Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Timeri i thread-ovi, DCOM server

[ Pregleda: 1927 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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