ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π»ΠΎ ΠΏΠΎΡΠΎΠΊΠ° java
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java: ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Thread
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (CPU β central processing unit). ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎΡΠ΅ΡΡΡ Π² Java: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ
ΠΠΎΡΠΎΠΊ β Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π΄Π΅Π»ΡΡ Π΅Π³ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° ΠΈ ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² wait(), notify(), notifyAll().
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π±ΡΠ²Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ :
Π‘ΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Thread, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ±Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΠ·ΡΠ²Π°ΡΡ Thread.start, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ.
ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΠ±ΡΠ°ΡΡ? ΠΠ΅ΡΠ²ΡΠΉ β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Runnable β Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ Thread ΠΊΠ»Π°ΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ. ΠΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ API ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅: ΠΊΠ»Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ Thread.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ
Π Java ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.
ΠΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ β ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ ΡΠ±ΠΎΡ Β«ΠΌΡΡΠΎΡΠ°Β»: ΠΎΠ½ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠΈΡΠ°ΡΡ ΠΊΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² JVM (Java Virtual Machine) ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ-Π΄Π΅ΠΌΠΎΠ½Π°ΠΌΠΈ.
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²-Π΄Π΅ΠΌΠΎΠ½ΠΎΠ²:
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ boolean isDaemon(). ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ β ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Java ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ»Π°ΡΡ Java Thread ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ stop(), Π½ΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ deprecated. ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ stop() Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ. Π’ΠΎ Π΅ΡΡΡ, Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Java, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ» Π΄ΠΎΡΡΡΠΏ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π½ΡΡΡΡ Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Β«ΡΠ»ΠΎΠΌΠ°ΡΡΡΡΒ».
ΠΠΌΠ΅ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° stop() Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Runnable, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ doStop(), ΠΏΠΎΡΡΠ»Π°ΡΡΠΈΠΉ Runnable ΡΠΈΠ³Π½Π°Π» ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ. Runnable ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π΅Π³ΠΎ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ².
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ doStop() ΠΈ keepRunning(). ΠΡΠ·ΠΎΠ² doStop() ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ run() Π² MyRunnable.
ΠΠ΅ΡΠΎΠ΄ keepRunning() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ run() MyRunnable. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ doStop() Π½Π΅ Π²ΡΠ·Π²Π°Π½, ΠΌΠ΅ΡΠΎΠ΄ keepRunning() Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ run(), ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ MyRunnable, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΅Π³ΠΎ. ΠΠΎΡΠΎΠΊ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ main() (Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ), Π·Π°ΡΡΠΏΠ°Π΅Ρ Π½Π° 10 ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ ΠΏΠΎΡΠΎΠΌ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ doStop() ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° MyRunnable. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΠΎΡΠΎΠΊ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ MyRunnable, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ·Π²Π°Π½ doStop(), keepRunning() Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ false.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Runnable Π½ΡΠΆΠ΅Π½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ run() (Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ stop() ΠΈΠ»ΠΈ pause()), ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Runnable Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ Runnable, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ.
ΠΠ΅ΡΠΎΠ΄ Thread.sleep()
ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΡΠ°ΠΌ, Π²ΡΠ·Π²Π°Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Thread.sleep(). Thread.sleep() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. ΠΠ΅ΡΠΎΠ΄ sleep() ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΡΠ½ΡΡΡ Π½Π° ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Thread sleep() Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° Java Π½Π° 10 ΡΠ΅ΠΊΡΠ½Π΄ (10 ΡΡΡΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄) Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Thread sleep():
ΠΠΎΡΠΎΠΊ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄, ΡΡΠ½Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 10 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ΅ΡΠΎΠ΄ yield()
ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ yield(): ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° t1, t2, and t3. ΠΠΎΡΠΎΠΊ t1 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ, Π° ΠΏΠΎΡΠΎΠΊΠΈ t2 ΠΈ t3 Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Ready/Runnable. ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° t1 β 5 ΡΠ°ΡΠΎΠ², Π° Π΄Π»Ρ t2 β 5 ΠΌΠΈΠ½ΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ t1 Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· 5 ΡΠ°ΡΠΎΠ², t2 ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΆΠ΄Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ 5-ΠΌΠΈΠ½ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π²Π°ΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. Π’ΡΡ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ yield ().
ΠΠΎ ΡΡΡΠΈ, yield() ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, ΠΈ Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°, ΡΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° yield() :
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ΅ΡΠΎΠ΄ join()
ΠΠ΅ΡΠΎΠ΄ join() ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π½Π°ΡΠ°Π» Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ join() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π° Thread, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ° Thread Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ join() ΠΆΠ΄Π΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊ ΡΠΌΡΠ΅Ρ. Π’Π°ΠΉΠΌ-Π°ΡΡ 0 (Π½ΠΎΠ»Ρ) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΆΠ΄Π°ΡΡ Π²Π΅ΡΠ½ΠΎΒ».
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊ t1 Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΡΠΎΠΊΠΈ t2 ΠΈ t3 Π½Π°ΡΠΈΠ½Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΅ΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΡ 1 Π΄ΠΎ 10. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° (Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ β ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅). ΠΠΎ ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±Π΅ΡΠ΅Ρ JVM.
Π’ΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Thread:
1. public static int MIN_PRIORITY (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 1);
2. public static int NORM_PRIORITY (Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°);
3. public static int MAX_PRIORITY (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 10).
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΏΠΎΡΠΎΠΊΠ°:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Thread
ΠΠΌΡ ΠΏΠΎΡΠΎΠΊΠ° β Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Ρ Π½ΠΈΠΌ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π²ΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ
, ΠΏΠΎΡΠΎΠΊΠ°Ρ
, ΠΈ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π°Ρ
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Java.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ° ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΠΎΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΊ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π·Π°Π³ΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΈ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΠΉ ΡΠ°ΠΉΠ», Π΅ΡΠ»ΠΈ Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΎΡΠΌΠ΅Π½Π°Β».
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Ρ Π°ΡΠ΄ΠΊΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ β ΠΈΠ³ΡΡ. Π ΠΈΠ³ΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ, Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, ΡΠ°ΡΡΠ΅Ρ ΡΠΈΠ·ΠΈΠΊΠΈ ΠΈ Ρ.ΠΏ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ. Π‘Π½Π°ΡΠ°Π»Π° ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ .
ΠΡΠΎΡΠ΅ΡΡΡ
ΠΡΠΎΡΠ΅ΡΡ β ΡΡΠΎ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·Π΄Π΅Π»ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½ΠΎ Π±ΡΠ²Π°ΡΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ°ΡΠ·Π΅Ρ Chrome ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, ΡΡΠΎ Π΄Π°Π΅Ρ Π΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π²ΡΠΎΠ΄Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°). ΠΡΠΎΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠΆΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ (Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²).
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΠ‘ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΒ», ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ Π΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΎΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ.
Π‘Ρ Π΅ΠΌΠ° ΡΡΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π΅ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ· ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ, Π·Π°Π³ΡΡΠΆΠ°Ρ Π² Π΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠΎΡΠΎΠΊΠΈ
ΠΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ β ΡΡΠΎ ΠΎΠ΄Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΠ±Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΡΠ°Π·Ρ Β«ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈΒ». ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π° ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΡΠ΄Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π° ΡΠ°Π· (Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅). ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°ΠΏΡΡΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΎΠ΄Π½ΠΎΡΠ΄Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ Π΄Π°Π²Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ, ΡΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ. Π’Π°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π²Ρ ΠΎΠ΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊ, Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΡΠΎΡΠ΅Π΅β¦
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠ΅ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠ°ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
Π¦Π²Π΅ΡΠ½ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (Π·Π΅Π»Π΅Π½ΡΠ΅ β ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΈΠ½ΠΈΠ΅ β ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ). ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΊΡ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎΠ»-Π²ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ.
Π’ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΊΡ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ°ΡΡΡ, Π° ΠΏΠΎΠΊΠ° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Π² Javaβ¦
ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΠΎΡΠΎΠΊ. Π’ΠΎΡ ΠΏΠΎΡΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ. Π ΡΠ·ΡΠΊΠ΅ Java, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π° main(). ΠΠ°ΡΠ΅ΠΌ, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ°Ρ , ΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΈΠΌ ΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅, ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.
Π ΡΠ·ΡΠΊΠ΅ Java ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΊΠ»Π°ΡΡΠ° Thread. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
ΠΠ°ΠΏΡΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
Π‘ΠΏΠΎΡΠΎΠ± 1
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Thread, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅ΠΌΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π½Π΅ΡΡΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ run(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠΎΡΠΎΠΊ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ run().
ΠΠ»Ρ ΠΏΡΡΠ΅Π³ΠΎ ΡΠΊΠΎΡΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Thread ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π΅Π·ΡΠΌΡΠ½Π½ΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable:
Π‘ΠΏΠΎΡΠΎΠ± 2
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΊΠ»Π°ΡΡΠ° Thread ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ run():
Π ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ main() ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ. ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° mSecondThread.start() Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ²ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΈΠΌ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ. Π ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ΄ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° start(), Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ° mSecondThread.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΡΠΏΠΎΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° Β«ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π½ΡΡΠ΅, ΡΠΉΡΠΎ ΠΈΠ»ΠΈ ΠΊΡΡΠΈΡΠ°?Β». ΠΠ»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±ΡΠ»Π° ΠΊΡΡΠΈΡΠ°, ΠΎ ΡΠ΅ΠΌ ΠΎΠ½ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΎΡΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠΎΠ²Π΅ΡΠ³Π°ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠΏΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡΠ΅Π³ΠΎ ΡΠΏΠΎΡ ΠΏΡΠΎΠ΄Π»ΠΈΡΡΡ 5 ΡΠ΅ΠΊΡΠ½Π΄. ΠΠΎΠ±Π΅Π΄ΠΈΡ ΡΠΎΡ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈΠ·ΡΠ΅ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ, Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, ΠΆΠΈΠ²ΠΎΡΡΠ΅ΠΏΠ΅ΡΡΡΠΈΠΉ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ (isAlive() sleep() ΠΈ join()). Π Π½ΠΈΠΌ Π΄Π°Π½Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ Π΄Π°Π»ΡΡΠ΅.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ 5 ΡΠ΅ΠΊΡΠ½Π΄ Π²ΡΠ²ΠΎΠ΄ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π’ΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ³Π°Π΄Π°ΡΡ, Π½ΠΎ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Β«ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΒ». ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Β«Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°Β». ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠ°Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΠ»ΠΈ, Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ·ΡΠΊΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²β¦
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ
Π Java ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ main() ΡΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ, Π½ΠΎ Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠ΅ ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΎΡΠΎΠ±ΠΎΠΌΡ Π²ΠΈΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² β Π΄Π΅ΠΌΠΎΠ½Π°ΠΌ. ΠΡΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ, ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½ΠΈ.
ΠΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ β Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ setDaemon(true) ;
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°Π² Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ boolean isDaemon() ;
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π Java ΡΡΡΠ΅ΡΡΠ²ΡΡΡ (ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ) ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ Thread.stop() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΊ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ Thread.suspend(), ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΈ Thread.resume(), ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, Π±ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΡΠ½Π΅ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Β«ΡΠ±ΠΈΡΒ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π° ΠΏΠΎΠ»ΡΡΠ»ΠΎΠ²Π΅ ΠΎΡΡΠ°Π²ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ΄Π½ΠΎΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡ Π΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°ΠΌ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΡΠ²ΠΎΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° run(), (main() β Π΄Π»Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°) Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π» β Π΄Π΅Π»ΠΎ, ΠΎΠΏΡΡΡ ΠΆΠ΅, ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎΠ»ΡΡΠΈΠ² Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° ΡΠΈΠ³Π½Π°Π» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Π»Π΅ΠΆΠΈΡ Π½Π° ΠΏΠ»Π΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
Java ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Interruption (ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ), ΠΈ ΡΠΊΠΎΡΠΎ ΠΌΡ Π΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΡ:
Incremenator β ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ°Π΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Program.mValue. Incremenator ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° Π·Π°ΠΊΡΡΡΡΡ ΠΏΠΎΠ»Ρ β mIsIncrement ΠΈ mFinish. Π’ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π±ΡΠ»Π΅Π²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ mIsIncrement β Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ true, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΈΠ½Π°ΡΠ΅ β Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅. Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ mFinish ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΠΎ true.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° changeAction() (Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ Π½Π° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ) ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° finish() (Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°).
Π ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ mIsIncrement ΠΈ mFinish Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ volatile (ΠΈΠ·ΠΌΠ΅Π½ΡΠΈΠ²ΡΠΉ, Π½Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ). ΠΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π±Π΅Π· volatile, ΠΌΠΎΠΆΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ . ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ volatile ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π»Ρ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡΠ΄ΡΡ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° β Incremenator ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ mFinish ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΉΡΠΈ Π΄ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ finish(), ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ»ΠΎ Π±Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΈΠ³Π½Π°Π»Π° ΠΈΠ·Π²Π½Π΅, ΠΌΠ΅ΡΠΎΠ΄ sleep() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠΎΠΊ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°Π» ΡΠ²ΠΎΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Interruption (ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ).
Interruption
ΠΠ»Π°ΡΡ Thread ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΠΊΡΡΡΠΎΠ΅ Π±ΡΠ»Π΅Π²ΠΎ ΠΏΠΎΠ»Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ»Ρ mFinish Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Incremenator, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π°Π³ΠΎΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ ΡΠ»Π°Π³ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ interrupt() ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΆΠ΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈ ΡΡΠΎΡ ΡΠ»Π°Π³, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ bool isInterrupted() ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠΎΡΠΎΠΉ β Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ bool Thread.interrupted(). ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΡ ΡΠ»Π°Π³ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌ. ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΡΠΎ Thread.interrupted() β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Thread, ΠΈ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·Π½ΡΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ.
ΠΡΠ°ΠΊ, Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π·Π°ΡΡΠΏΠ°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ°. Π£ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ sleep(), wait() ΠΈ join() Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ β Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ interrupt() ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΎΠ½ΠΈ, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΊΠΎΠ½ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InterruptedException.
ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Incremenator β ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° finish() Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ interrupt(). Π Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ»Π°Π³Π° mFinish Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ bool Thread.interrupted();
Π’Π°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ»Π°ΡΡ Incremenator ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΡ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΈΡΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° finish() ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΠΌΠ΅ΡΠΎΠ΄ sleep() Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅) Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ sleep() ΠΈ join() ΠΎΠ±ΡΡΠ½ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-catch. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InterruptedException, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ΠΈ Π±ΡΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
Π‘ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, Π΄Π°Π»ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΠ΅ΡΠΎΠ΄ Thread.sleep()
Thread.sleep() β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Thread, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° sleep() ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄ sleep() ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈΠ»ΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ) Π»ΠΈΠ±ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InterruptedException).
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ sleep() ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ, Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ Π²ΡΠ΅ΡΡΠ΅Π·. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΠΊΡΡΠ³Π»ΡΠ΅ΡΡΡ Π΄ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π° ΡΠΎ ΠΈ Π΄ΠΎ ΠΈΡ Π΄Π΅ΡΡΡΠΊΠΎΠ².
ΠΠ΅ΡΠΎΠ΄ yield()
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Thread.yield() Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΅Π³ΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠ΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Thread.yield() Π² ΡΠΈΠΊΠ»:
ΠΠ΅ΡΠΎΠ΄ join()
Π Java ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ join(). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Π» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° myThready, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ myThready.join() Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊ myThready Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΌΠ΅ΡΠΎΠ΄ join() Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ join() ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ join() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Thread.sleep() ΠΌΠ΅ΡΠΎΠ΄ join ΠΌΠΎΠΆΠ΅Ρ ΠΆΠ΄Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ β Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ΅ ΠΆΠ΅.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΏΠΎΠΊΠ° Π³Π»Π°Π²Π½ΡΠΉ (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ) ΠΏΠΎΡΠΎΠΊ ΠΆΠ΄ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠΎΡΠΌΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊ brain (ΠΌΠΎΠ·Π³) Π΄ΡΠΌΠ°Π΅Ρ Π½Π°Π΄ ΡΠ΅ΠΌ-ΡΠΎ, ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Ρ Π½Π΅Π³ΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠ»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΆΠ΄Π΅Ρ Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·Π΄ΡΠΌΡΠ΅ Π½Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Β«ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠ°Π·Π΄ΡΠΌΠΈΠΉΒ» (Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°). Π ΠΈΡΠΎΠ³Π΅, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·Π΄ΡΠΌΠΈΠΉ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΌΡΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΡΠΎ Π΄Π°Π΅Ρ Π΅ΠΌΡ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΌΠΎΠ·Π³ΠΈ ΡΠ΅ΠΌ ΡΠΎ Π·Π°Π½ΡΡΡ.
ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ β ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, Π° ΠΏΠΎΡΠΎΠΊΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡΡ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ.
Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
void setPriority(int priority) β ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ priority β MIN_PRIORITY, NORM_PRIORITY ΠΈ MAX_PRIORITY.
int getPriority() β ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Thread
ΠΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ. ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
boolean isAlive() β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true Π΅ΡΠ»ΠΈ myThready() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈ false Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ ΠΈΠ»ΠΈ Π±ΡΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½.
setName(String threadName) β ΠΠ°Π΄Π°Π΅Ρ ΠΈΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°.
String getName() β ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΌΡ ΠΏΠΎΡΠΎΠΊΠ° β Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Ρ Π½ΠΈΠΌ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
static Thread Thread.currentThread() β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½.
long getId() β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠΊΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π² ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΡΠΎ Π²ΡΠ΅ Π½ΡΠ°Π½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΊΠΎΠ΄Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠ°Π½ΡΠΎΠ². Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² β ΡΠ΅ΠΌΠ°, Π½Π΅ ΠΈΠ·ΡΡΠΈΠ² ΠΊΠΎΡΠΎΡΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½Π΅ΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Java Concurrency in PracticeΒ» ΠΈΠ»ΠΈ Π·Π΄Π΅ΡΡ (Π²ΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ).
Π ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² Java. ΠΡΠ»ΠΈ ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΡΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ.