Mi konkurencia, és melyek azok a konkurencia osztályok verem túlcsordulás orosz
Konkurencia, hogy működjön együtt több szálon kódot.
Általában ez azt értjük:
Management (create / start / stop) Java virtuális gép fonalak (hogy "menet", szálak). Kulcs minden ilyen áramban végezhetjük párhuzamosan a kódot a másik forrásból. Így bizonyos feladatok végezhetők egyszerre, mintha. Itt kell foglalkozni olyan fogalmakat, mint a szálak, menet medencék, Futura.
- java.lang.Thread
- java.lang.Runnable
- java.util.concurrent.Callable
- java.util.concurrent.Executor
- java.util.concurrent.Executors
- java.util.concurrent.ThreadFactory
Az áramlás szabályozása program (szálszinkronizációt). Folytatva az ilyen helyzetek, amikor a kód egy szál kell várni befejezése a feladat egy másik patak. Ez a szinkronizálás felhasználásával érjük el a különféle eszközök. Egy fontos probléma ebben az összefüggésben - egymásba szálak (holtpont), ahol több patakok várnak semmit egymástól.
- java.lang.Object. várjon (). értesíti (). notifyAll ()
- java.util.concurrent.locks. *
- java.util.concurrent.CountDownLatch
- java.util.concurrent.Semaphore
- java.util.concurrent.CyclicBarrier
- java.util.concurrent.Exchanger
- java.util.concurrent.Phaser
Memory Access Control (adat) egy többszálú környezetben. Fontos, hogy tisztában legyenek a Java memória modell (Java memória modell), változó alkalmazási körét, az atomi műveleteket és a előfordulása verseny feltételeit. szálbiztosak gyűjtemény.
Mélyebb megértéséhez Azt javaslom elolvasni:
Konkurencia - röviden a lehetőségét a végrehajtás, majd további 2 kód Steytment egyszerre. Képzeljük el, hogy a kód a víz folyik a csövön keresztül. Meg kell szivattyúzni a vizet a B-be (kódfuttatást analógia elejétől - fő, hogy befejezze - exit). Tekintettel arra, hogy nem tudod megváltoztatni a mérete a cső, akkor egyszerűen hozzá további 1 csőbe. Ezért az elméletet, hogy egy nagy sebességgel. Max „csövek”, amely előnyösen alkalmazható függ a magok száma a processzorban.
Az osztályok sok, és megtalálható az java.util.concurrent. Továbbá azt tanácsolom, hogy olvassa el a hivatalos dokumentációt. A használata, minden attól függ, hogy mit fog csinálni. Primitív példa:
Superior például fogja használni ExecutorService vagy hasonló osztályok. Azt tanácsolom, hogy nézd meg itt.
Válaszol szeptember 4 '15 at 09:59