ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java Β· GitHub
Monitor — Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
- ΠΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°Ρ , ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ-ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΈΠ·Π±Π°Π²Π»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΎΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
Semaphore — ΡΠ΅ΠΌΠ°ΡΠΎΡ, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠΉΡΠΈ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
- Π‘Π΅ΠΌΠ°ΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π·Π°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ².
Mutex — Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ: ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌ. ΠΠ½ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π»Π°Π΄Π΅ΡΡΠΈΠΉ ΠΈΠΌ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ, Ρ.
- ΠΠ°Π΄Π°ΡΠ° ΠΌΡΡΡΠ΅ΠΊΡΠ° β Π·Π°ΡΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²Π»Π°Π΄Π΅Π» ΠΌΡΡΡΠ΅ΠΊΡΠΎΠΌ.
- Π ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π»Π°Π΄Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΌ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠΌ.
- ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π±ΡΠ΄Π΅Ρ Π½ΡΠΆΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΉ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠΌ, ΡΠΎ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΡΡΡΠ΅ΠΊΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½.
Reentrant mutex — ΠΌΡΡΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π»ΠΎΡΠ΅Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΎΠ΄ΠΈΠ½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ/ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Lock — Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΠΏ ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
- ΠΡΠ³ΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° — ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ.
- ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° — ΠΏΠΎΠΏΡΡΠΊΠ° Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½Π°, ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΡΠΎΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ.
Spinlock — ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅.
- Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊ ΠΎΡΡΠ°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π½ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»ΡΠ½Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Deadlock — Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π·Π°Π½ΡΡΡΡ ΡΠ°ΠΌΠΈΠΌΠΈ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
Livelock — Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
Process — ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
- ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
- ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ JVM Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
- Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ProcessBuilder ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Thread — ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ (lightweight processes). ΠΠΎΡΠΎΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° — ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
- ΠΠΎΡΠΎΠΊΠΈ Π΄Π΅Π»ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ «Π³Π»Π°Π²Π½ΡΠΉ» ΠΏΠΎΡΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Interrupt — ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ½Π΅Π½ΠΈΠ΅.
Join — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΆΠ΄Π°ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Thread safe — ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ, ΡΠ°ΠΊ ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
- Not thread safe — ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
Thread affinity — ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌ ΡΡΠ΅Π΄Π΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ» ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ΄ΡΡ.
EDT (Event Dispatching Thread) — ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- Π’Π°ΠΊΠΈΠ΅ GUI ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, AWT ΠΈΠ»ΠΈ Swing, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ EDT.
Race condition — ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π°.
Context switches — ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ.
- Π§Π°ΡΡΠΎΠ΅ ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΡΠΎΠ³ΠΎ ΠΈΠΌ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ·-Π·Π°:
- Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
- ΠΠ΅ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ
- ΠΠ°ΡΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ CPU Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠΈΡΡ Π½Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
Atomic action (ΠΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ) — ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°ΡΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅, Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°ΡΡΡ Π²ΠΎΠ²ΡΠ΅.
- ΠΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½Π°: ΠΎΠ½Π° Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΠ±Ρ, Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ²ΡΠ΅.
- ΠΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ.
- ΠΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠΊΡΡΡΠ° Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Happened-before relationship — ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ «Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅» Π΄Π²ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ A Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½Π° Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ B, Ρ.Π΅. ΡΠΎΠ±ΡΡΠΈΠ΅ Π Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ B Π½Π°ΡΠ½Π΅Ρ ΡΡΠ΅Π½ΠΈΠ΅.
- ΠΠ°Π½Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΠΎ, ΠΈΡΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ²Π½ΠΎ, Π°Π½ΡΠΈΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ.
- Π’ΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΠΎ — Π΄Π»Ρ Π»ΡΠ±ΡΡ 3-Ρ ΡΠΎΠ±ΡΡΠΈΠΉ a, b, c, Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ a ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ b, ΠΈ b ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ c, ΡΠΎΠ³Π΄Π° a Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ c.
- ΠΡΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ²Π½ΠΎ — Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ.
- ΠΠ½ΡΠΈΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ — Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ a Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ b, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Critical section — ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
- ΠΡΡΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ Π²Ρ ΠΎΠ΄Π°/Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ.
Π‘ΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Java Concurrency | Π‘ΡΠ°ΡΡΠ΅ΠΊΡΡ
ΠΠ·ΡΡΠΎ ΠΎΡΡΡΠ΄Π°: http://www.rsdn.ru/forum/java/3622844.flat.aspx
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π²Π°ΠΊΠ°Π½ΡΠΈΡΡ
Π½Π° Java Developer ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ Java Concurrency/Multithreading. Π ΠΎΡΠ²Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΡ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΡΡ ΡΡΡΠΎΡΠΊΡ ΡΠ΅Π±Π΅ Π² ΡΠ΅Π·ΡΠΌΠ΅. Π― ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Ρ
ΠΎΡΠ΅Π» Π±Ρ ΡΠ°Π·Π²Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΠ°Π·ΡΠΌΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°.
ΠΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ Ρ Π±Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ» Π½Π° 3 ΠΊΠ»Π°ΡΡΠ°: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π΅ΡΡΡ ΡΠ°ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ(«ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅») Ρ Π±Ρ ΠΎΡΠ½Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΈΠΆΠ΅ Ρ ΠΏΡΠΈΠ²ΠΎΠΆΡ ΡΡΠ΄ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Ρ Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ java concurrency, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ°ΠΊ ΠΈ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ. ΠΠ°Π΄Π΅ΡΡΡ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ.
1. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Collections.synchronizedMap(new HashMap()) ΠΈ ConcurrentHashMap.
2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΎΠ½Π° Π»ΠΈ Π»ΠΈ Π² Java. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ ΡΠΎΠ³Π΄Π° Π² Java?
3. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «Π·Π΅Π»Π΅Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊΠΈ» ΠΈ ΠΎΠ½ΠΈ Π»ΠΈ Π»ΠΈ Π² Java (Π² HotSpot JVM.6)?
4. Π Π°Π·Π»ΠΈΡΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
Runnable ΠΈ Callable.
5. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ (Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° β push() ΠΈ pop()).
6. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ copy-on-write ArrayList (Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° β void add(int indx, int item), int get(int indx), void remove(int indx), int size()).
7. Π Π°Π·Π»ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Thread.isInterrupded() ΠΈ Thread.interrupded().
8. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Thread.interrupt()?
9. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² deprecated Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ. ΠΠ°ΠΊΠΈΠ΅? Thread.interrupt(), Thread.stop(), Thread.yield(), Thread.suspend(), Thread.resume(), Thread.join(), Thread.start(), Thread.run(), Thread.sleep().
10. Π§ΡΠΎ ΠΡ Π·Π½Π°Π΅ΡΠ΅ ΠΎ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²? ΠΡΡΡ Π»ΠΈ ΡΡΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Java? ΠΡΠ»ΠΈ Π΅ΡΡΡ, ΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ? ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΊΠ°ΠΊ Π±Ρ ΠΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ?
11. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅ ΠΠ‘Π ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠΊΠΎΡΠΈΡΡ InterruptedException.
12. Π§ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ JMM Π΄ΠΎ Java 5 ΠΈ NewJMM ΠΏΠΎΡΠ»Π΅ Java 5?
13. Π ΠΊΠ»Π°ΡΡΠ΅ String Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠ΅. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ±ΡΠ°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠΈΠ½Π°Π»? ΠΠ΅Π΄Ρ ΡΠ΅ΡΡΠ΅ΡΠΎΠ² Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅Ρ β ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ.
14. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ordering, visibility, atomicity, happend-before, mutual exclusion. Π ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
volatile, AtomicInteger, synchronize{} β ΡΡΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ
Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
15. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ synchronize{} ΠΈ ReentrantLock.
16. Π§ΡΠΎ ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅Ρ happend-before: Thread.sleep(), Thread.join(), Thread.yield(), Thread.start(), Thread.run(), Thread.isAlive(), Thread.getState()?
17. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΠ°ΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π±ΠΎΡΡΠ±Ρ Ρ priority inversion, Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌ Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΎΠΏΠ°ΡΠ½Ρ.
18. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΠ°ΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ 1)ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ 2)ΠΏΠΎΠ±ΠΎΡΠΎΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΠΈΠ΅ deadlock-ΠΈ (ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ΄ΡΠΎ RDBMS).
19. Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°Ρ
Reactor/Proactor?
20. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «monitor»?
21. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «private mutex»?
22. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «priority inheritance»?
23. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «backoff protocol (expotential backoff)»?
24. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «task stealing»?
25. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ABA problem»?
26. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «test-end-set»?
27. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «test-and-test-end-set»?
28. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «spin lock»?
29. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «sequential consistency»?
30. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «sense-reversing barrier»?
31. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «safe publication»?
32. Π§ΡΠΎ ΡΡΠΎ Π·Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ β «reentrancy»?
33. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «recursive parallelism»?
34. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «iterative parallelism»?
35. Π§ΡΠΎ ΡΡΠΎ Π·Π° Π²Π°ΡΠΈΠ°Π½Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ «pipeline»?
36. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «poison message»?
37. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «mutual exclusion»? ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π² Java.
38. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «condition waiting»? ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π² Java.
39. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° SheduledThreadPool ΠΏΠ΅ΡΠ΅Π΄ java.util.Timer.
40. Π Π°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ java.util.concurrent.Atomic*.compareAndSwap() ΠΈ java.util.concurrent.Atomic*.weakCompareAndSwap().
41. Π§ΡΠΎ Π² SynchronousQueue ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ BlockingQueue.
42. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΡΠ°Π½Π΄Π΅Π²Ρ»? ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ°ΠΊΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² Π² Java Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ?
43. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «false sharing». ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² Java. ΠΡΠ»ΠΈ Π΅ΡΡΡ, ΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΊΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ±ΠΎΡΠΎΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ JVM.
44. Thread.getState() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Thread. State. ΠΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ?
45. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ/ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ synchronize{}. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ReentrantLock.
46. Π£ ReentrantLock ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ true Π²ΡΠ΅ ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π·Π°Ρ
Π²Π°ΡΠ° Π±Π»ΠΎΠΊΡΡΠΎΠ²ΠΊΠΈ β Π½Π΅ fair. ΠΠ°ΠΊΠΎΠΉ? ΠΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ?
47. ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ CountDownLatch ΠΈ Barrier.
48. Π§ΡΠΎ ΠΡ Π·Π½Π°Π΅ΡΠ΅ ΠΎ Erlang? Π§ΡΠΎ Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅Ρ Π² Java?
49. Π§ΡΠΎ ΠΡ Π·Π½Π°Π΅ΡΠ΅ ΠΎ CSP? Π§ΡΠΎ Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅Ρ Π² Java?
50. ΠΡΠ»ΠΈΡΠΈΠ΅ Thread.start() ΠΈ Thread.run()?
ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Java
ο»Ώ ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Java
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Java Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ , ΠΈ Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π²ΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Ρ ΠΎΠ»ΠΎΡΡΠΎΠΉ ΡΠ°ΡΡΡΠ°ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ Π΅Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ. ΠΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠΈΠΊΠ»ΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΠΉ Ρ ΠΎΠΏΡΠΎΡΠΎΠΌ. Π ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅, ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π°Π»ΡΡΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΡΠΎΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠΈΠ³Π½Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» Π³ΠΎΡΠΎΠ² ΠΊ ΡΡΠ΅Π½ΠΈΡ, ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΎΡ Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ. ΠΡΠΎ ΡΠ°ΡΡ ΠΎΠ΄ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈ Π½Π΅ Π΄Π°Π²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
ΠΡΠ³ΠΎΠ΄Π° ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΠ° ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ. ΠΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅ΡΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠΊΠ»Π°ΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ «Π·Π°ΡΡΠΏΠ°ΡΡ» Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ², Π½Π΅ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Java, ΡΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
ΠΠΎΡΠΎΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ . ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³ΠΎΡΠΎΠ² ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ» ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ΅ΡΡΡΡΠ°. Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½, ΡΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΆΠ΄Ρ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½.
Runnable ΠΈ Thread. ΠΡΡΡ «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java»
Π Java ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Runnable ΠΈ ΠΊΠ»Π°ΡΡΠ° Thread, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Runnable. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ, Π²ΡΠΎΡΠΎΠΉ β ΠΏΡΠΎΡΠ΅.
Π’Π° ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π²ΡΠ½ΠΎΡΠΈΡΡΡ Π² ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ run(). ΠΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° run() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Thread ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ start(). ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² run() Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
public class ThreadTest { public static void main(String[] args) throws InterruptedException { AnotherRun anotherRun = new AnotherRun(); Thread childTread = new Thread(anotherRun); childTread.start(); for (int i = 0; i < 3; i++) { System.out.println("m" + i); Thread.sleep(1000); } childTread. join(); System.out.println("End"); } } class AnotherRun implements Runnable { @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("r" + i); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Interrupt"); } } } }
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
m0 r0 m1 r1 m2 r2 r3 r4 End
ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ·-Π·Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° sleep(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, Π½ΠΎ Π½Π΅ Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ΅ΡΡΡΡΠ°.
ΠΠ΅ΡΠΎΠ΄ join() Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½ΠΈΡΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»Π°ΡΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΠΎΡ Runnable. ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Runnable ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° Thread. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ Thread:
public class ThreadTest1 { public static void main(String[] args) throws InterruptedException { AnotherTask thread = new AnotherTask(); thread.start(); for (int i = 0; i < 3; i++) { System.out.println("m" + i); Thread.sleep(1000); } thread.join(); System.out.println("End"); } } class AnotherTask extends Thread { @Override public void run(){ for (int i = 0; i < 5; i++) { System.out.println("r" + i); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Interrupt"); } } } }
ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Π½Π΅ Thread). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Java Π½Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Runnable. Π’Π°ΠΊΠΆΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ anotherRun Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Thread.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Thread ΡΠ°ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ Runnable.
ΠΡΠ»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠ±ΠΎΡΠΎΠ±Π»ΡΠ΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ:
public class ThreadNoName { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println("hi"); } }); thread.start(); Thread thread1 = new Thread() { @Override public void run() { System.out.println("hello"); } }; thread1.start(); } }
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΠΈΡΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ interrupt(), ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ isInterrupt Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true. Π ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ Runnable/Thread, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ. ΠΡΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² Java Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅ΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΠ·Π²Π½Π΅, ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π² ΠΌΠ΅ΡΠΎΠ΄ sleep() ΡΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ isInterrupt, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π²ΡΡΡΠ½ΡΡ ΠΎΠΏΡΡΠΊΠ°ΡΡ. ΠΡΠ»ΠΈ sleep() ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ThreadInterrupt { public static void main(String[] args) throws IOException { Thread thread = new InterruptedClass(); thread.start(); BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); reader.readLine(); thread.interrupt(); } } class InterruptedClass extends Thread { @Override public void run() { while (true) { System.out.print("a"); try { sleep(1000); } catch (InterruptedException e) { break; } } } }
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ , Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠΎΡΠ°Ρ Π½ΠΈΡΡ. ΠΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Enter, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ interrupt(). Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠ΅ΡΠΎΠ΄ sleep() ΠΏΡΠΎΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ isInterrupt ΠΊΠ»Π°ΡΡΠ° Thread ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InterruptedException.
ΠΡΠ»ΠΈ sleep() Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠΎ isInterrupt ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ isInterrupted(). Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ:
public class ThreadInterrupt2 { static int a = 1; public static void main(String[] args) throws InterruptedException { Thread thread = new WithoutSleep(); thread.start(); Thread.sleep(2000); thread.interrupt(); } } class WithoutSleep extends Thread { @Override public void run() { while (true) { System.out.println("hi"); } } }
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π· 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ interrupt(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΡΡ Π½ΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π΅ΠΉ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ isInterrupt, ΡΠΈΠΊΠ» ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
class WithoutSleep extends Thread { @Override public void run() { while (!this. isInterrupted()) { System.out.println("hi"); } } }
ΠΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ Runnable ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· this ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ, Π²ΡΠ·ΡΠ²Π°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Thread:
class WithoutSleep2 implements Runnable { @Override public void run() { Thread cur = Thread.currentThread(); while (!cur.isInterrupted()) { System.out.println("hi"); } } }
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java β Not only Java
ΠΡΠΎ β ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ βThreading in Javaβ Π°Π²ΡΠΎΡΠ° Beka Kodirov. ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π΄Π΅ΡΡ.
Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°?
ΠΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π° ΠΏΠ°ΠΌΡΡΡ ΠΈ Π¦ΠΠ£ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΄ΡΠΎΠΌ ΠΠ‘. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
PID
β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°PPID
β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°UID
β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡHeap
β ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ (ΠΎΠ±ΡΡΠ½ΠΎ main- ΠΈΠ»ΠΈ ui-). ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½ΠΎ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ.
ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΡΡΠ°ΡΡΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΡΠ°ΡΡΠΎΠΊ RAM.
ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² Java ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ Linux-ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ. Π½.pthreads. ΠΠΎΡΠΎΠΊ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ ΠΈ Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ β Π½Π΅Π²ΡΡΠ΅ΡΠ½ΡΡΡΠ°Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ, Π²ΡΡΠ΅ΡΠ½ΡΡΡΠ°Ρ.
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ
Π’ΠΈΠΏ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΅ΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡΡ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π·Π°Π²ΠΈΡΠ°Π΅Ρ, ΡΠΎ ΡΠ΅ΡΡΡΡΡ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ.
ΠΡΡΠ΅ΡΠ½ΡΡΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π»Π΅ΠΆΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Π·Π°ΡΠΈΡ: ΠΏΡΠΎΡΠ΅ΡΡ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ βGreen Threadsβ ΠΈ Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π² Java (HotSpot JVM 7)?
Π Java Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½Π°Π·Π²Π°Π½Π½ΡΠΉ βΠ·Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊβ. ΠΠ½ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ native ΠΏΠΎΡΠΎΠΊ, ΡΠΎ Π΅ΡΡΡ Π·Π° Π²Π΅ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Π·Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ JVM, Π° Π½Π΅ ΡΠ΄ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎ Π΅ΡΡΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. Π‘Π°ΠΌΡΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ β Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π²ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ native ΠΏΠΎΡΠΎΠΊ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π¦ΠΠ£.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²? ΠΠ°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ?
Π ΡΠΈΡΡΠ΅ΠΌΠ΅, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΌΠΎΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π·ΠΎΠ½Π΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°. ΠΠ½ ΡΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ, Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅: ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΡΡΡΡ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ βΠ½ΠΈΠ·ΠΊΠΎΠΌΡβ ΠΏΠΎΡΠΎΠΊΡ. Π Java ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 1 (ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ) Π΄ΠΎ 10 (ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ). ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π΅Π½ 5.
ΠΠ°ΠΊΠΎΠ²Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ?
Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π·Π°Π΄Π°Ρ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ. ΠΠ΅Π»ΠΈΡΠΈΠ½Π° ΠΏΠ°ΡΠ· ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡ Π½Π΅ ΠΎΡΡΡΠ°Π΅Ρ. ΠΠΎ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Π° Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ IO ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ,
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ Π² Java — Π Π°Π·Π½ΠΈΡΠ° ΠΠ΅ΠΆΠ΄Ρ
Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² Java ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² Java ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΡΠΎΡΠ΅ΡΡ — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ², Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠΈΡΡ — ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΈΠΌ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³Π΄Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ³Π΄Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΠΊΡΡΡΡ
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Single Thread Π² Java
Β βΒ ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ
2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java
Β βΒ ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ
3. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ Π² Java
Β βΒ Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ°Π·Π»ΠΈΡΠΈΠΉ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ
Java, ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ, ΠΏΡΠΎΡΠ΅ΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Single Thread Π² Java
Π ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ. ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ.
Π ΠΈΡΡΠ½ΠΎΠΊ 1: ΠΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Java
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ a ΠΈ b ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ° integer. ΠΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° HelloWord. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Add, Sub, Mul ΠΈ Div. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΠΈ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java
Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΡΡΡΡ. Π Java Π΅ΡΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠΎ ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Runnable ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Thread. ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2: ΠΡΠ»ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Java
Π ΠΈΡΡΠ½ΠΎΠΊ 3: ΠΠ»Π°ΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
HelloWorld — ΡΡΠΎ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable. Π£ ΠΌΠ΅ΡΠΎΠ΄Π° run Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Runnable ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΎ ΠΎΡΠΏΡΠ°Π²Π½Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ThreadName — ΡΡΠΎ ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° start (). ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ run. Π ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ Π² Java
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ — ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π±Π΅Π· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΡΡΡ — ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΏΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ Π² Java.
ΠΎΡΠ½ΠΎΠ²Π°
ΠΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ Π² Java.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Java ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Java Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ Π² Java Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π‘ΡΡΠ»ΠΊΠ°:
1. Β«Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ? — ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ Techopedia. βTechopedia.com,
ΠΠ°ΠΊΠ°Π½ΡΠΈΡ Senior Android Developer (Digital Health) ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ondoc Π½Π° vc.ru, Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³
ΠΠ°ΠΊΠ°Π½ΡΠΈΡ Senior Android Developer (Digital Health) ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ondoc Π½Π° vc.ru, Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ [ { «id»: 1, «label»: «100%Γ150_Branding_desktop», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox_method»: «createAdaptive», «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «ezfl» } } }, { «id»: 2, «label»: «1200Ρ 400», «provider»: «adfox», «adaptive»: [ «phone» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «ezfn» } } }, { «id»: 3, «label»: «240Ρ 200 _Π’ΠΠ_desktop», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «fizc» } } }, { «id»: 4, «label»: «Article Branding», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «cfovx», «p2»: «glug» } } }, { «id»: 5, «label»: «300x500_desktop», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «ezfk» } } }, { «id»: 6, «label»: «1180Ρ 250_Interpool_Π±Π°Π½Π½Π΅Ρ Π½Π°Π΄ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ_Desktop», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «h», «ps»: «bugf», «p2»: «ffyh» } } }, { «id»: 7, «label»: «Article Footer 100%_desktop_mobile», «provider»: «adfox», «adaptive»: [ «tablet», «phone» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «bwkpg», «p2»: «fjxb» } } }, { «id»: 8, «label»: «Fullscreen Desktop», «provider»: «adfox», «adaptive»: [ «desktop», «tablet» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «fjoh» } } }, { «id»: 9, «label»: «Fullscreen Mobile», «provider»: «adfox», «adaptive»: [ «phone» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «fjog» } } }, { «id»: 10, «disable»: true, «label»: «Native Partner Desktop», «provider»: «adfox», «adaptive»: [ «desktop», «tablet» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «clmf», «p2»: «fmyb» } } }, { «id»: 11, «disable»: true, «label»: «Native Partner Mobile», «provider»: «adfox», «adaptive»: [ «phone» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «clmf», «p2»: «fmyc» } } }, { «id»: 12, «label»: «ΠΠ½ΠΎΠΏΠΊΠ° Π² ΡΠ°ΠΏΠΊΠ΅», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «bscsh», «p2»: «fdhx» } } }, { «id»: 13, «label»: «DM InPage Video PartnerCode», «provider»: «adfox», «adaptive»: [ «desktop», «tablet», «phone» ], «adfox_method»: «createAdaptive», «adfox»: { «ownerId»: 228129, «params»: { «pp»: «h», «ps»: «bugf», «p2»: «flvn» } } }, { «id»: 14, «label»: «Yandex context video banner», «provider»: «yandex», «yandex»: { «block_id»: «VI-223676-0», «render_to»: «inpage_VI-223676-0-1104503429», «adfox_url»: «//ads. adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=» } }, { «id»: 15, «label»: «ΠΠ°Π½Π½Π΅Ρ Π² Π»Π΅Π½ΡΠ΅ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ», «provider»: «adfox», «adaptive»: [ «desktop», «tablet», «phone» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «byudx», «p2»: «ftjf» } } }, { «id»: 16, «label»: «ΠΠ½ΠΎΠΏΠΊΠ° Π² ΡΠ°ΠΏΠΊΠ΅ ΠΌΠΎΠ±Π°ΠΉΠ»», «provider»: «adfox», «adaptive»: [ «tablet», «phone» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «byzqf», «p2»: «ftwx» } } }, { «id»: 17, «label»: «Stratum Desktop», «provider»: «adfox», «adaptive»: [ «desktop» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «fzvb» } } }, { «id»: 18, «label»: «Stratum Mobile», «provider»: «adfox», «adaptive»: [ «tablet», «phone» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «fzvc» } } }, { «id»: 19, «label»: «Π’ΠΈΠ·Π΅Ρ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ 2», «provider»: «adfox», «adaptive»: [ «desktop», «tablet», «phone» ], «auto_reload»: true, «adfox»: { «ownerId»: 228129, «params»: { «p1»: «cbltd», «p2»: «gazs» } } }, { «id»: 20, «label»: «ΠΠ½ΠΎΠΏΠΊΠ° Π² ΡΠ°ΠΉΠ΄Π±Π°ΡΠ΅», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «p1»: «cgxmr», «p2»: «gnwc» } } }, { «id»: 21, «label»: «Π£Π»ΡΡΡΠ°ΡΠΈΠ·Π΅Ρ», «provider»: «adfox», «adaptive»: [ «desktop» ], «adfox»: { «ownerId»: 228129, «params»: { «pp»: «g», «ps»: «bugf», «p2»: «gtjk» } } } ] {«token»:»eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJwcm9qZWN0SWQiOiI1ZTRmZjUxODYyOGE2YzcxNDUxNWY0ZGEiLCJpYXQiOjE1ODI1MzY0NDB9.AwBBnUWMy3RR1xtAoaXVr81WvqxdlD4C8CBpwFiONzw»,»release»:»fe552c7f»} null ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΠ² Java, ΡΠ°ΡΡΡ I — ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Java Spring
Π ΠΌΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π» ΠΎΡΠ½ΠΎΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ Π·Π΄Π΅ΡΡ: http://www.zoltanraffai.com/blog/multithreading-and-concurrency -at-a-glance /
Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Java, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java.
Java Threading Foundation
Π Java ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΠ΄Π΅Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ: ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ°Π±ΠΎΡΠΈΡ systems:
- ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΡΠ°Π±ΠΎΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
- ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅: ΠΡ Π½Π΅ΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ.
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΏΠΎΡΠΎΠΊΡ: ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π’ΠΈΠΏΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ:
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΡΠΎΠΊΠ΅
- ΠΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΠ΅ΡΠΎΠ΄
ΠΠ»Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠ°:
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
- ΠΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°
- Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ start
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ FileAdder ΠΊΠ»Π°ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable .ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ , ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄: run ().
Π Π½Π°ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ main ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Thread Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ FileAdder . Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ Π±Π»ΠΎΠΊ try-catch. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ class run () FileAdder.
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π²ΠΎΡΡΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Ρ Π½Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ±ΡΠΎΡΠ΅Π½.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΡΠ΅Π½, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Ρ Π½Π°Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΡΠΎ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Main Thread ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Threads .
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ°ΠΊ:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Thread ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Threads Π² ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΄Π»Ρ Π½ΠΈΡ
Join () . ΠΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π½Π°Ρ ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Π΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°ΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ ΡΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ join, ΠΎΠ½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ»Π°ΠΌΠΈ, ΠΈ ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π§ΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ 1000 ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ 8? ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, ΠΈ Π½Π° ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ? ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ 1000 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ Π·Π°Π΄ΡΡΠΈΡΡ Π½Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΠΎΠΊΠ°:
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΡΠΊΠΎΠΌ, Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ².
Challange of the Thread class:
- ΠΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠΎΠΌ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Thread Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π½ΠΈΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ·-ΠΏΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ
ΠΌΠ΅Π»ΠΊΠΈΡ
Π΄Π΅ΡΠ°Π»ΡΡ
, ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅. ΠΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Ρ
ΠΎΠ΄ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΡΠ΅ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄Π»Ρ Π·Π°Π΄Π°Ρ
- ΠΠ°Π·Π½Π°ΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²
- ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ
Π Java Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΡΠ»ΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ Π½Π°ΠΌ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ:
ExecutorServiceInterface
- ΠΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠ»Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²
- ΠΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°Π΄Π°ΡΠΈ
- ΠΠ°ΠΏΡΠΎΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ»Π°
ΠΠ»Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ (ΠΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ»ΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ²)
- ΠΡΠ»Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ
- ΠΡΠ»Ρ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ
- ΠΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π°Ρ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ExecutorService Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 3. ΠΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π΅ΠΌΡ Π²ΡΠ΅ Π½Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ
Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, Π½ΠΎ ΠΎΠ½ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ 3 ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ:
ΠΠΎΡΠ»Π΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π·Π°Π±Π΅Π³ΠΎΠ² Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Ρ Π½Π°Ρ 8 ΠΈΠ»ΠΈ 8000 ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΉ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ shutdown () , Π½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ Π½Π°ΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π½ΠΎ ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ.
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π·Π΄Π΅ΡΡ.
Tagged #Spring #JavaJava Multithreading | ΠΠΎΠ΄ Π’ΡΠΊΠ²Π°
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ — ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ (ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π°ΠΆΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Java ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡJava ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. Π Java Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java (JVM) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π¦Π ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠ° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½ java ΠΈ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π΅ΠΉ Π·Π°Π²ΠΎΠ΅Π²Π°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΉΠ΄Π΅ΡΠ΅ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ΄ΡΠΎΠΌ Java, Π²Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ±ΡΠ»ΡΠ½ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΡ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠΏΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠ΅ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ, ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ Π² JAVA.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠ° | ΠΠΎΡΠΎΠΊ VS Runnable
- ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² wait (), notify () ΠΈ notifyAll ()
- interrupt (), interrupted () ΠΈ isInterrupted ()
- InterruptedException
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π½ΠΈΡΠ΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ
Π£ΡΠΈΠ»ΠΈΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Java
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Ρ ΡΠΎΠ»ΠΈΠ΄Π½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. Π’Π°ΠΊΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΡ
Π·Π½Π°Π½ΠΈΠΉ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠΈΠ»ΠΈΡΠ°Ρ
, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java.util.concurrent
. ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ
ΡΡΠΈΠ»ΠΈΡΠ°Ρ
. Π₯ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Java. π
- CountDownLatch
- CyclicBarrier
- CountDownLatch ΠΏΡΠΎΡΠΈΠ² CyclicBarrier
- Π¨Π°Π±Π»ΠΎΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ BlockingQueue
- Threadpool Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Executor Framework
- Hashtable ΠΏΡΠΎΡΠΈΠ² SynchronizedMap ΠΏΡΠΎΡΠΈΠ² ConcurrentHashMap
ΠΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ°ΡΡΠΈ Π² ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π».Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ π ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΡΠ·Π°ΡΡΡΡ Ρ Π½Π°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· facebook ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΈΡΡΠΌΠΎ Π½Π° [Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½]
25 ΡΠ°ΠΌΡΡ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java
Π ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π΄Π²ΡΠΌΡ ΡΠ΅ΠΌΠ°ΠΌΠΈ: Π²ΠΎΠΏΡΠΎΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ±ΠΎΡΡ java ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ — ΡΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡΡΡ — ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΡΡ ΡΠ΅ΠΌΡ.ΠΡ Π΄Π΅Π»ΠΈΠΌΡΡ Π²Π°ΠΆΠ½ΡΠΌΠΈ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ java.1 ΠΊΠ². Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π½ΠΈΡΡ?
ΠΠΎΡΠΎΠΊ — ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ»Π°ΡΡ Thread ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΡ java.lang. Π£ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 50 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 10 ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Π΄ΠΎ 5 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄.
Q2 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ?
Π£ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π».
ΠΠΎΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΡ ΠΊΡΡΠΈ.
Q3 ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π² Java?
ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Thread Π² java.
1. Π Π΅Π°Π»ΠΈΠ·ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable Π² java, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Thread.
2. Π Π°ΡΡΠΈΡΡΡ ΠΊΠ»Π°ΡΡ Thread.
Q4 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Runnable ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Thread ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π² java? ΠΠ°ΠΊΠ°Ρ ΠΈΠ· Π½ΠΈΡ Π»ΡΡΡΠ΅?
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Runnable Π»ΡΡΡΠ΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠΌ ΠΊΠ»Π°ΡΡ Thread, ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ java Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Runnable ΠΈ extends Thread.
Q5 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΠΎΡΠΎΠΊΠ°?
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π² java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ, Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Runnable (Π³ΠΎΡΠΎΠ² ΠΊ Π·Π°ΠΏΡΡΠΊΡ, Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½). ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ThreadScheduler. ThreadScheduler ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π² ΠΏΡΠ»Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Runnable ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Running. ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅, Blocked ΠΈ Dead — ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΡΠ°ΠΊ ΠΊΠΎΡΠΎΡΠ΅ Π½ΠΎΠ²ΡΠ΅, ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅, Ρ ΠΎΠ΄ΠΎΠ²ΡΠ΅.ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ, Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΌΠ΅ΡΡΠ²ΡΠΉ — ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎΡΠΎΠΊ.
Q6 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠ½Π° ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π² java?
ΠΠ΅ΡΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π΅ ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ.
ΠΠ΅ΡΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡ java.lang.Object, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡ java.lang.Thread.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈ ΡΠ½Π° Π² java.
Q7 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° start () ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° run ()?
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π°Ρ ΡΠΎΠΆΠ΅ Π·Π°ΠΏΡΡΠ°ΡΡ.ΠΡΠ²Π΅Ρ: ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ start (), ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ run () Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ run Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ run (), ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊΠ΅, Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° start ().
Q8 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½Π°?
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ Π² java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½Π°, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΠΎΡΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½Π° — ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ»ΡΠ³ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° Π΄Π΅ΠΌΠΎΠ½Π°, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½Π°.
Q9 ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½Π° Π² java?
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ² setDaemon (true), ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½Π° Π² java.
Q10 ΠΠ°ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° volatile?
ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠΈΠ²ΠΎΠΉ, ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π½Π΅ ΠΊΡΡΠΈΡΡΡΡ.ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ.
volatile — ΡΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ.
Q11 ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π²Π°ΠΆΠ΄Ρ?
ΠΠ΅Ρ, Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π²Π°ΠΆΠ΄Ρ. ΠΡΠ»ΠΈ ΠΌΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Q12 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ?
Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ — ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡΡ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ —
a. ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡΡ
b. Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Q13 Π§ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ — Π±Π»ΠΎΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ?
Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Ρ ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Q14 Π Π°Π·Π»ΠΈΡΠΈΡ ΠΈ ΡΡ ΠΎΠ΄ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠ½Π° ΠΈ Π²ΡΡ ΠΎΠ΄Π°?
ΠΠ΅ΡΠΎΠ΄ ΡΠ½Π° Π²ΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π΅Ρ ΡΠΏΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ yield Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ Thread.sleep () Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ², Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ yield ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠ½Π° ΠΈ Π²ΡΡ
ΠΎΠ΄Π° Π² java.
Q15 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠΏΠΈΠΊ?
Π’ΡΠΏΠΈΠΊ — ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΆΠ΄ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΡΡΠΎΠ±Ρ ΡΠ½ΡΡΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΠΎΡΠΎΠΊ 1: Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡΡΡ A, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΅ΡΡΡΡΠ° B
ΠΠΎΡΠΎΠΊ 2: Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡΡΡ B, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΅ΡΡΡΡΠ° A
Q16 ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π² java?
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅Ρ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠ° Π² java.
Q17 ΠΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΏΠΈΠΊΠ°?
1. ΠΠ»ΠΎΠΊΠΈΡΡΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, Π° Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠΉΡΠ΅ Π²Π΅ΡΡ ΠΊΠ»Π°ΡΡ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ join (), Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Ρ
ΠΎΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°Ρ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
3. ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π±Π»ΠΎΠΊΠΎΠ² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
Q18 Π§ΡΠΎ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΏΠΎΠ΄ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ°?
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΅ΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — int , ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ 1 Π΄ΠΎ 10, Π³Π΄Π΅ 1 — ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π° 10 — ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
ΠΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π½ΠΎ ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ThreadScheduler, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΠ‘.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠ°Π½ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ.
Q19 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°?
ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²Π²Π΅Π΄Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, Π²Π²Π΅Π΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. Π Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Q20 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Callable ΠΈ Runnable?
Callable Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Runnable Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Runnable Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Callable ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Future.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ.
Q21 Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠΈΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?
ΠΡΠΈ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠ° Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π·Π°Π΄Π°ΡΠ° Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΡΠΈ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠ» Π³ΠΎΡΠΎΠ²ΡΡ
Π·Π°Π΄Π°Ρ.
Q22 ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ?
ΠΠ΅Ρ, ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
Q23 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΠ½ΠΊΠΈ Π² Java ΠΈ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΡΠΈΡΡ?
ΠΠΎΠ³Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅ΡΡΡΡΡ Π±Π΅Π· ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΠ½ΠΊΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΠ½ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΈΠ»ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄.
Q24 ΠΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ?
ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² wait (), notify (), notifyAll ().
Q25 ΠΠΎΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ wait (), notify () ΠΈ notifyAll () Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΈΠ· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°?
ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΠ·ΡΠ²Π°Π΅Ρ wait () Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΎΡΡΠ°Π²ΠΈΡ, ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΏΠΎΠΊΠ° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ notify () Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΠ·ΡΠ²Π°Π΅Ρ notify () Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΎΠ½ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Thread ΠΈΠΌΠ΅Π» ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠ΅ΠΌ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ wait (), notify () ΠΈ notifyAll () Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΈΠ· ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
Q26 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ThreadLocal Π² java?
ThreadLocal ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ThreadLocal. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ThreadLocal.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ThreadLocal, ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ get () ΠΈ set () Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Thread.
Q27 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Threadpool?
Threadpool ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΆΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Q28 ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠ·Π½Π°ΡΡ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΠΏΠΎΡΠΎΠΊ lock () Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ?
ΠΠ΅ΡΠΎΠ΄ holdLock (Object) ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ΅ΡΠΎΠ΄ holdLock (Object) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ java, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΠ°Ρ , ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ .
ΠΡΠ½ΠΎΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ — ΠΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡ ΠΏΠΎ Java
ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π½Π°ΡΠΈΡ 1000+ MCQ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java.
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅?
a) ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠ°
b) ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
c) ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
d) ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ².
View Answer
Answer: b
Explanation: ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
2. ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ
ΡΠΈΠΏΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ?
a) ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
b) ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠ°
c) ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠ°
d) ΠΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΡΠ²Π΅Ρ: c
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ: ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ².
3. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° Π² Java Π΅ΡΡΡ?
a) Π¦Π΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
b) Float
c) double
d) long
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΡΠ²Π΅Ρ: a
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: Java Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ.ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° — ΡΡΠΎ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌ.
4. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²ΡΠ·ΠΎΠ²ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π²ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ?
a) ΠΡΠ±ΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠ΅ΡΠ²ΡΠΌ Π»Π΅ΠΊΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
b) ΠΠ±Π° ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
c) ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½
d) ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΡΠ²Π΅Ρ: d
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: In Π ΡΠ»ΡΡΠ°ΡΡ
, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ Π·Π° ΡΠΈΠΊΠ»Ρ Π¦Π, ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ
Π² ΡΠ°Π·ΡΠ΅Π·Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
5. ΠΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅Π²Π΅ΡΠ½ΠΎ?
a) ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ Π¦Π ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ
Π±) ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ Π¦Π ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ
Π²) ΠΠ²Π° ΠΏΠΎΡΠΎΠΊΠ° Π² Java ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ
d) ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄Π²ΡΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ
: Π·Π°ΠΏΡΡΠ΅Π½ ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½.
ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΡΠ²Π΅Ρ: d
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: ΠΏΠΎΡΠΎΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ
, ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½, ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, Π·Π°Π²Π΅ΡΡΠ΅Π½ ΠΈ Π³ΠΎΡΠΎΠ² ΠΊ ΡΠ°Π±ΠΎΡΠ΅.
6. Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?
class multithreaded_programing
{
public static void main (String args [])
{
Thread t = Thread.currentThread ();
System. out.println (t);
}
}
a) Π’Π΅ΠΌΠ° [5, main]
b) Π’Π΅ΠΌΠ° [main, 5]
c) Π’Π΅ΠΌΠ° [main, 0]
d) Π’Π΅ΠΌΠ° [main, 5, main]
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅: ΠΠ΅Ρ.
ΠΡΡ ΠΎΠ΄:
$ javac multithreaded_programing.java $ java multithreaded_programing Π’Π΅ΠΌΠ° [ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ, 5, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ]
7. ΠΠ°ΠΊΠΎΠ² ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Java?
class multithreaded_programing
{
public static void main (String args [])
{
Thread t = Thread.currentThread ();
Π‘ΠΈΡΡΠ΅ΠΌΠ°.out.println (t);
}
}
Π°) 4
Π±) 5
Π²) 0
Π³) 1
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Thread [main, 5, main], Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊΡ, ΡΠ°Π²Π΅Π½ 5. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΠΎΡΠΎΠΊ, ΠΎΠ½ Π½Π°Π·Π²Π°Π½ Π³ΡΡΠΏΠΏΠΎΠΉ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄.
ΠΡΡ ΠΎΠ΄:
$ javac multithreaded_programing.java $ java multithreaded_programing Π’Π΅ΠΌΠ° [ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ, 5, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ]
8.ΠΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Java?
class multithreaded_programing
{
public static void main (String args [])
{
Thread t = Thread.currentThread ();
System.out.println (t);
}
}
a) ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ
b) ΠΏΠΎΡΠΎΠΊ
c) ΡΠΈΡΡΠ΅ΠΌΠ°
d) Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Thread [main, 5, main], ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²Π½ΠΎ Π½Π΅ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π½Π°Π·Π²Π°Π»ΠΈ Π³ΡΡΠΏΠΏΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ, i: e main ΠΌΠ΅ΡΠΎΠ΄.ΠΡΡΡΠ΄Π° ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅Β».
ΠΡΡ ΠΎΠ΄:
$ javac multithreaded_programing. java $ java multithreaded_programing Π’Π΅ΠΌΠ° [ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ, 5, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ]
Sanfoundry Global Education & Learning Series — Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java.
ΠΡΠΈΠΌΠΈΡΠ΅ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Sanfoundry, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΠΎΡΠ΅ΡΠ½ΡΡ Π³ΡΠ°ΠΌΠΎΡΡ. ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Π½Π°ΡΠΈΠΌ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΌ Π½ΠΈΠΆΠ΅ ΠΈ Π±ΡΠ΄ΡΡΠ΅ Π² ΠΊΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΊΠΎΠ½ΠΊΡΡΡΠΎΠ², Π²ΠΈΠ΄Π΅ΠΎ, ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ!
Top Java Multithreading Interview Questions & Answers
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Ρ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ.ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ.
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Java?
ΠΡΠ²Π΅Ρ:
ΠΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ (ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ) ΠΏΡΠΎΡΠ΅ΡΡΠ°.
2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ?
ΠΡΠ²Π΅Ρ:
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ — ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ². Java ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
3. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ Π² java?
ΠΡΠ²Π΅Ρ:
ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π² java
- ΠΏΡΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΠΎΠΊΠ°
- ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Runnable.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Java.
4. Thread vs Runnable, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π»ΡΡΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°?
ΠΡΠ²Π΅Ρ:
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Runnable ΡΡΠΈΡΠ°Π΅ΡΡΡ Π»ΡΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ, ΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ.
- Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ Thread, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π².
- Runnable interface ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Thread ΠΈΠ»ΠΈ Executors.
- ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
6. Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ½ΠΎΠΌ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ Π² java?
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ | ΡΠΏΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ |
Π‘ΠΈΠ½Ρ ΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° 907 Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΎΠ½ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ IllegalMonitorStateException | ΠΠ³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² | |
ΠΡΠ·ΠΎΠ²Ρ | ΠΠ΅ΡΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° | ΠΠ΅ΡΠΎΠ΄ ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² java. lang.Thread |
Π‘Π½ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ | ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π²ΡΠ·Π²Π°Π½, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ | ΠΠ΅ΡΠΎΠ΄ ΡΠ½Π° Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ |
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΡ | Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° notify () ΠΈΠ»ΠΈ notifyAll () ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° | ΠΠΎΠΊΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ () |
ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ | ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ | sleep — ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ |
ΠΡΠ²Π΅Ρ:
Π java Π΅ΡΡΡ 5 ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠΎΠ²ΡΠΉ : ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΊΠ°, Π½ΠΎ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ Π°ΠΊΡΠΈΠ²Π΅Π½.
Runnable: ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Runnable. ΠΡΠ΄Π΅Ρ Π»ΠΈ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ².
Π Π°Π±ΠΎΡΠ°Π΅Ρ: ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΎ: ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° (ΠΈΠ·-Π·Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°), ΠΎΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ΅ΡΡΠ²ΡΠΉ: ΠΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
8. ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ run Π½Π°ΠΏΡΡΠΌΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ?
ΠΡΠ²Π΅Ρ:
ΠΠ΅Ρ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ run Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ start, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ run Π½Π°ΠΏΡΡΠΌΡΡ, ΠΎΠ½ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΡΠ΅ΠΊΠ΅, ΡΡΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° Π½Π°ΠΏΡΡΠΌΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
9. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π²Π°ΠΆΠ΄Ρ Π² java?
ΠΡΠ²Π΅Ρ:
ΠΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ ΡΠ½ΠΎΠ²Π°. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ ΡΠ½ΠΎΠ²Π°, ΠΎΠ½ Π²ΡΠ΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ IllegalThreadStateException.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π²Π°ΠΆΠ΄Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
10. ΠΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅?
ΠΡΠ²Π΅Ρ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ.
11. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½Π°?
ΠΡΠ²Π΅Ρ:
ΠΠ΅ΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ — ΡΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ»ΡΠ³ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ.ΠΠ³ΠΎ ΠΆΠΈΠ·Π½Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½, JVM ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½Π° Π·Π°ΠΏΡΡΠ΅Π½Ρ. JVM Π½Π΅ ΠΆΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π΅ΠΌΠΎΠ½Π°.
12. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½Π°?
ΠΡΠ²Π΅Ρ: ΠΠ΅ΡΠΎΠ΄ setDaemon ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ setDaemon (true), ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ.
13. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ?
ΠΡΠ²Π΅Ρ:
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ — ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.ΠΠΎΠ³Π΄Π° Π΄Π²ΡΠΌ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΡΠΎΡΠ΅ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
14. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ?
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² ΡΡΠΎΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ URL. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄Π²Π° Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ.
ΠΠ΅Π· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡΠ³.arpit.java2blog; Public class RequestCounter { private int count; public int incrementCount () { count ++; ΡΡΠ΅ΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°; } } |
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠΎΠΊ T1 Π²ΠΈΠ΄ΠΈΡ ΡΡΠ΅Ρ ΠΊΠ°ΠΊ 20 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎ 21. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊ t2 ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄ΠΈΡ ΡΡΠ΅Ρ ΠΊΠ°ΠΊ 20 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎ 21. ΠΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠ°Π» Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.
Π‘ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
- ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
- ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ incrementCount () ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΡΠΎΠ±Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΎΡΠ³.Π°ΡΠΏΠΈΡ.java2blog; Public class RequestCounter { private int count; ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ int incrementCount () { count ++; ΡΡΠ΅ΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°; } } |
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠΎΠΊ T1 Π²ΠΈΠ΄ΠΈΡ ΡΡΠ΅Ρ ΠΊΠ°ΠΊ 20 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎ 21. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊ t2 ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠ΅Ρ ΠΊΠ°ΠΊ 21 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎ 22.
ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ incrementCount (), ΡΡΠΎΠ±Ρ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π»ΠΎΠΊΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΏΠ°ΠΊΠ΅Ρ org.arpit.java2blog; Public class RequestCounter { private int count; public int incrementCount () { synchronized (this) { count ++; ΡΡΠ΅ΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°; } } } |
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠΎΠΊ T1 Π²ΠΈΠ΄ΠΈΡ ΡΡΠ΅Ρ ΠΊΠ°ΠΊ 20 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎ 21.Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊ t2 ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΠΊΠ°ΠΊ 21 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎ 22.
15. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡΠ°?
16. ΠΠΎΠ³ΡΡ Π»ΠΈ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ?
ΠΡΠ²Π΅Ρ:
ΠΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ
, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
17. ΠΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½? ΠΠΎΠ³ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ?
ΠΡΠ²Π΅Ρ:
ΠΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π΄Π»Ρ Π²Ρ
ΠΎΠ΄Π° Π² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ, Π° Π²ΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
18. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°?
ΠΡΠ²Π΅Ρ:
ΠΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° , Π° ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
public synchronized void method1 () { method2 (); // Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄ } public synchronized void method2 () { // Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄ } |
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅.
public void method1 () { synchronized (this) { method2 (); // Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄ } } public void method2 () { synchronized (this) { // some code } } 03 19. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠΏΠΈΠΊ? ΠΡΠ²Π΅Ρ: ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΠΎΡΠΎΠΊ 1 Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π» ΠΎΠ±ΡΠ΅ΠΊΡ 1 ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° 2. ΠΠΎΡΠΎΠΊ 2 Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π» ΠΎΠ±ΡΠ΅ΠΊΡ 2 ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° 1. Π ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ΄ΡΡ ΠΆΠ΄Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. 20. Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ notify ΠΈ notifyall? ΠΡΠ²Π΅Ρ: ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ: ΠΠ΅ΡΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Swing ΠΈ SwingWorker (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 15)ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Swing (GUI) Π½Π° Java, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° SwingWorker Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. SwingWorker — ΡΡΠΎ ΡΡΡΡΠ°ΡΠ°ΡΡΠΈΠΉ, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π΅Π½ ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 14)Π§ΡΠΎ ΡΡΠΎ Π·Π° Π½Π°Π΄ΠΎΠ΅Π΄Π»ΠΈΠ²ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ InterruptedException? Π ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ….Java Multithreading: Callable and Future (ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 13)ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Callable ΠΈ Future Π² Java, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Future ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΏΡΠΎΠ²Π΅ΡΡΡ, Π½Π΅ . …ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΡΠ΅ΠΌΠ°ΡΠΎΡΡ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 12)Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌ Π² Java.Π‘Π΅ΠΌΠ°ΡΠΎΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ, Π½ΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΡΡΠΏΠΈΠΊ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 11)ΠΡΠΈΡΠΈΠ½Ρ ΡΡΠΏΠΈΠΊΠ° ΠΈ Π΄Π²Π΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ. Π ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ try ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 10)ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ReentrantLock Π² Java Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΊΠΎΠ΄Π°.ReentrantLocks ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ synchronized, wait ΠΈ notify, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ . ..ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 9)Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²; Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΆΠ΄Π°ΡΡ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ Π½Π΅ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ-c ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 8)Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Java; Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Object, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΡΠΏΠ°ΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ±Ρ ΠΈΡ ΡΠ°Π·Π±ΡΠ΄ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² Π½ΡΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 7)Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π² Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Java ArrayBlockingQueue. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ — ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ . …ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Π·Π°ΡΠ΅Π»ΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΡΠ΅ΡΠ° (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 6)ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Java CountDownLatch Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΠΏΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 5)Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² Java Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ»ΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ»ΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ΅Π»ΡΡ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡ Π·Π°Π΄Π°Ρ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 4)ΠΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java.Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ.ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 3)ΠΡΠΎ ΡΡΠ΅ΡΡΡ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° synchronized Π΄Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ea ….Java Multithreading: Volatile — Basic Thread Communication (Video Tutorial Part 2)ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ° ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java.Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° volatile Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³ΠΎΠ². ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½Π°Ρ ….ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java: Π·Π°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ² (Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ, ΡΠ°ΡΡΡ 1)ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π°ΠΌ ΡΠ΅ΡΠ½ΡΠΌ ΠΈΡΠΊΡΡΡΡΠ²ΠΎΠΌ? ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Java ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π½Π°Π΄Π΅ΡΡΡ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° .. .ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² JavaΠ§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ? ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Java , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π¦Π.ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ°ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΡΠ°ΠΊ, ΠΏΠΎΡΠΎΠΊΠΈ — ΡΡΠΎ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. β¦ Start () Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ run () ΠΎΠ±ΡΠ΅ΠΊΡΠ° Thread. ΠΠ°ΠΊΠΎΠ²Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ? ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ — ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ. ΠΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Java ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Java ΠΏΡΠΎΡΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Java ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΈ? Thread — ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π¦Π, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π¦Π. Threads , ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java Π±ΡΡΡΡΠ΅Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ? ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Java ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² (ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ — ΡΡΠΎ ΠΌΠΎΠ·Π³ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π° ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ!).ΠΠ΄ΠΈΠ½ Π¦Π ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π·Π° ΡΠ°Π· (Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ Π¦Π Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π³ΠΈΠΏΠ΅ΡΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ) ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ:
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π² Java ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π² Java: |