Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 2. diel - Vlákna v C # .NET - Sleep, Join a lock

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Člen
Člen
Avatar
Člen:5.9.2014 10:19

Pekny clanok :)

Odpovedať
5.9.2014 10:19
...
Avatar
Ondřej Krsička:21.4.2016 21:38

Na co je tam ten objekt zamek? Zkusil jsem do lock dát new object() a to nefungovalo.

 
Odpovedať
21.4.2016 21:38
Avatar
rosatislav
Člen
Avatar
Odpovedá na Ondřej Krsička
rosatislav:27.2.2017 17:06

Pokud bys dal do lock new Object(), tak by ti to pokaždé vytvořilo nový objekt, tím pádem 2 vlákna by ti vytvářely 2 objekty, které nejsou stejné.

Takže pokud to dobře chápu,to vlákno, které jako první začne pracovat s objektem zámek, tak ho uzamkne, a tím pádem, dokud se neprovede celý výpočetní proces, tak jiné vlákno (které chce pracovat s objektem zámek) nebude moct pokračovat.

 
Odpovedať
27.2.2017 17:06
Avatar
Milan Lhoták:6.9.2017 17:28

není mi jasná 1 věc, Hotovost je proměná objektu a pro každej cyklus se vytváří nová hodnota ne, takže ty vlákna by se neměli nad ní potkat, a pokud se potkávají, tak by to pak mělo zas fungovat jen pro 1 průběh cyklu a pak již ne protože hodnota je 0.

 
Odpovedať
6.9.2017 17:28
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Milan Lhoták
David Hartinger:6.9.2017 19:11

Vlákna pracují se stejnou proměnnou. Když se stane, že se jedno uspí těsně za podmínkou, v pauze než se stihne probudit může druhé vlákno provést odečtení, a odečtení poté provede i první vlákno když pokračuje v běhu. Situace je podrobně popsána v článku, přečti si tuto pasáž případně znovu nebo si příklad vyzkoušej.

Odpovedať
6.9.2017 19:11
New kid back on the block with a R.I.P
Avatar
Milan Lhoták:16.9.2017 13:07

Aha já to asi blbě pochopil ten kod, tzn ve funkci VyberVlakny to vybírá 2x?
jednou vláknem "vlakno1.start" a podruhý přímo Vyber100?

No jde o to, že není hláška, když už nelze vybrat. takže na screenu máš jen úspěšný výběry v rámci tý smyčky v mainu.

 
Odpovedať
16.9.2017 13:07
Avatar
Odpovedá na David Hartinger
Patrik Pastor:11.6.2019 21:16

Nemel by se objekt "zamek" jmenovat spise "klic"? protoze mi moc nedava smysl neco zamykat zamkem (snad klicem ne). Takze by byla podminka lock(klic){}, kde si vlakno drzi svuj klic po dobu uzamceno, nez jej preda dalsimu vlaknu

 
Odpovedať
11.6.2019 21:16
Avatar
Odpovedá na Patrik Pastor
Michal Štěpánek:12.6.2019 8:12

Na jednu stranu by to dávalo smysl, ale objekt bývá buď zamknutý nebo odemknutý a nikoliv zaklíčovaný nebo odklíčovaný... Klíč je pouze nástroj k odemknutí zámku.

Editované 12.6.2019 8:13
Odpovedať
12.6.2019 8:12
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovedá na Michal Štěpánek
Patrik Pastor:12.6.2019 8:15

slysel jsi nekoho pouzivat tyto slova? zaklicovany a odklicovany? Samozrejme chapu ze jde o ten zamek,.ktery.to vlakno drzi zamcene, jen srozumitelnejsi je parametru lock rikat klic (nic jineho se zamkem neoperuje). A je jasne, ze se bude rikat uzamceny a.odemceny

 
Odpovedať
12.6.2019 8:15
Avatar
Odpovedá na Patrik Pastor
Michal Štěpánek:12.6.2019 8:18

Máš sice pravdu, ale název klíč se v programování používá hlavně pro označení v databázích, tak možná, aby se to nepletlo se to jmenuje zámek...

Odpovedať
12.6.2019 8:18
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!