ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ ΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠΎΡΠΎΠΊΠΈ β ΡΡΠΎ Goto ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ²ΡΠΎΡ ΡΠΎΡΠΎ: Rainer Zenz
Π‘ΠΏΠ΅ΡΠ²Π° β Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΠΎΡΡΡΠ»ΠΎΠΊ Ρ ΡΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ²ΡΠΈΠΌΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΠΌ.
Goto considered harmful
ΠΠ° Π₯Π°Π±ΡΠ΅ ΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ/ΠΈΠ·Π³Π½Π°Π½ΠΈΡ Goto ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ°Ρ
Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π»Π°ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ:
habrahabr.ru/post/114211
habrahabr.ru/post/114470
habrahabr.ru/post/114326
ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Goto β ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½Π΅ΡΠΊΠΎΠ½ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Ρ
ΠΎΠ»ΠΈΠ²Π°ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Β«ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΒ», ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Java, Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ²ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Goto, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π² Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΠ΄Π΅ Goto Π΅ΡΡ Π² Ρ ΠΎΠ΄Ρ
ΠΡΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅, Π½ΠΎ Π΅ΡΡ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΡΠΆΠΊΠ° ΠΏΠΎ ΠΌΠ΅ΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π»ΠΈΡΠ½ΠΎ ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ: ΡΠ·ΡΠΊΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΈ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ². ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Ρ Π½Π΅ ΠΏΡΠΈΠΏΠΎΠΌΠ½Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ for ΠΈΠ»ΠΈ while. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΉ ΠΌΠ΅ΡΠ°Π½ΠΈΠ½ΠΎΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ². Π£ ΠΠ΅ΠΉΠΊΡΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: «. goto Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ·Π³Π½Π°Π½ ΠΈΠ· Π²ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² (Ρ.Π΅. ΠΎΡΠΎΠ²ΡΡΠ΄Ρ, ΠΊΡΠΎΠΌΠ΅ β ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ β ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°)» [Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅: Β«everything except βperhapsβ plain machine codeΒ»].
ΠΠΏΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ² Goto; ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΉΡΠΈ ΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ Π²ΡΡΠ΅. ΠΠ°ΠΏΠΈΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ²ΠΎΠ΄, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Goto Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΆΠ°Π΅Ρ Β«Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΡΡΡΒ» ΠΊΠΎΠ΄Π°, ΠΏΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² Π΄Π΅ΡΠ°Π»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ Π»ΡΡΡΠ΅ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ.
Π ΡΡΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΡΠ²ΠΎΠ΄ ΠΏΠΎΡΡΠΈ Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠΎΡ, ΡΡΠΎ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΡΡΡΡ Π²ΡΡΠ΅: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΆΠ°Π΅Ρ Β«Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΡΡΡΒ» ΠΊΠΎΠ΄Π°, ΠΏΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² Π΄Π΅ΡΠ°Π»ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Β«Π ΡΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅Β» ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΎΠ±Π½Π°ΠΆΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ.
Π§ΡΠΎ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΡΠΎΠΊΠΈ?
ΠΠ°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΡ, Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΡΠ°ΡΡΡΡΠΎΠΌ Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π’ΡΡ ΠΈ Erlang, ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½Π° ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠ²Π΅Ρ Π² Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ . ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π‘ΠΈ++, ΠΈ/ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ?
OpenMP β Ρ ΠΎΡΠΎΡΠΎ, Π΄Π° Π½Π΅ ΡΠΎ
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π½ΠΈ Π² Π‘, Π½ΠΈ Π² C++ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΎΠ»Π΅Π΅ Β«ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉΒ» Java) Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ, Ρ.Π΅. ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ»ΠΎ ΠΎΡΠ΄Π°Π½ΠΎ Π½Π° ΠΎΡΠΊΡΠΏ Β«ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΒ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ Π²ΡΠΎΠ΄Π΅ Pthread. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ OpenMP, Π²Π½ΠΎΡΡΡΠΈΠΉ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ fork-join ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π² ΡΡΠΈ ΡΠ·ΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π² Fortran. ΠΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΡΡΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡ Π½Π΅ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π’.Π΅. OpenMP β Π²ΡΡ Π΅ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π½Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ (ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ) ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenMP ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄Ρ Π½Π° Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ Π²Π΅ΡΡΠΈΡ 4.0 ΠΏΠΈΡΠ°Π»ΠΈ Π½Π° Π₯Π°Π±ΡΠ΅).
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΡΠ°ΡΡΠΈΠΌΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΅Π³ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΠΈΠΌΠΈ, Π»Π΅ΠΆΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ β ΠΏΠΎΠΏΡΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΠΈΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅, β ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β Π·Π°Π²ΡΡΠ½ΡΡΡΠ΅ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ·ΡΠΊΠ° (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ) ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π»ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²Π΅Π΄Ρ Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡ Π²ΡΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠ· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΠΉ. ΠΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅ΡΠ°ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΎΡΠ²ΡΠ²Π°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Ρ ΡΠΈΡΠΎΠΊΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈ ΡΠ·ΡΠΊΠ°.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΡ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΎΠ½ΡΡ . Π£ Intel, Π΅ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠΈΠ΅ΡΡ Π½Π° Π₯Π°Π±ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ, ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ: Intel Cilk Plus, Intel Threading Building Blocks. ΠΡΡΠ°ΠΆΡ ΡΠ²ΠΎΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ Cilk (Plus) Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΡΠ΅ΠΌ TBB. Π Π°Π΄ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΅Π³ΠΎ Π² GCC.
Π§ΡΠΎ Π΅ΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ. ΠΠ»Π°Π²Π½Π°Ρ Π΅Ρ ΠΈΠ΄Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ°ΡΡ ΡΡΠΎΠΌΡ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π½ΠΎ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡΒ«goto β ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎΒ».
Michael McCool, Arch Robison, James Reinders. Structured Parallel Programming β 2012 β parallelbook.com.
Π ΠΊΠ½ΠΈΠ³Π΅, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π·Π°Π΄Π°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ/ΡΠ·ΡΠΊΠΎΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: Intel Cilk Plus, OpenMP, Intel TBB, OpenCL ΠΈ Intel ArBB. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΡΡ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ.
2.2 ΠΠΎΡΠΎΠΊΠΈ
ΠΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°: Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π΄ΡΠΌΠΎΠΉ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ SFML. ΠΡΠΎΡΠ»ΡΡ ΡΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ ΡΡΠ°Π²ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π»ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΡΠ΄ΡΠΌ, Π½Π΅ Π·Π½Π°ΡΡΠΈΠΌ ΡΠ·ΡΠΊ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ. SFML β ΡΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. SFML ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡ. ΠΠ°ΡΠ½Π΅ΠΌ.
1. ΠΡΠΈΡΡΡΠΏΠ°Ρ ΠΊ ΡΠ°Π±ΠΎΡΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΎΠΊ?
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ· Π²Π°Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΎΠΊ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅.
ΠΠΎΡΠΎΠΊ β ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ: ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ main(). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ; Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΎΠ½Π° ΡΡΠ°Π½Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ.
Π’Π°ΠΊ, ΠΊΠΎΡΠΎΡΠ΅, ΠΏΠΎΡΠΎΠΊΠΈ β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π·Π²ΡΠΊΠΎΠ². ΠΠΎΡΠΎΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠΎΠΊΠΈ SFML ΠΈΠ»ΠΈ std::thread?
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ (2011), ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C++ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ SFML, ΡΡΠ°Π½Π΄Π°ΡΡ C++11 Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΠ³Π΄Π° SFML 2.0 Π±ΡΠ» Π²ΡΠΏΡΡΠ΅Π½, Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ SFML
Π₯Π²Π°ΡΠΈΡ ΡΠ°Π·Π³Π»Π°Π³ΠΎΠ»ΡΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄. ΠΠ»Π°ΡΡ, Π΄Π°ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SFML, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ sf::Thread, ΠΈ Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ:
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ main ΠΈ func Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° thread.launch(). Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΎΠ±Π΅ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠΌΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Ρ.Π΅. ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ sf::Thread. sf::Thread ΠΏΡΡΠ°Π΅ΡΡΡ Π±ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°: non-member ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π· Π½ΠΈΡ , ΡΡΠ½ΠΊΡΠΎΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½, Π²ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΎΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ»Π°ΡΡ sf::Thread ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ C++11 ΠΈΠ»ΠΈ std::bind.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ sf::Thread Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΠΎΡΡΠΎΠΌΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ sf::Thread ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΡΡΠ΅.
ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ sf::Thread, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.
launch Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠΎΡΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ»ΡΠΆΠ°ΡΠ°Ρ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ wait.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ sf::Thread, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ (ΠΈ Π±Π΅ΡΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΌ) ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ sf::Thread ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ»ΡΡ ΡΠ΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ).
ΠΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°
Π SFML Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»Π° ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ°; Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° β ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ. Π§ΡΠΎ Π±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ sf::sleep:
sf::sleep ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ β Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄Π°ΠΆΠ΅ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ.
sf::sleep ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ: Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ°, ΠΎΠ½ (ΠΏΠΎΡΠΎΠΊ) ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ, Π²ΡΠΎΠ΄Π΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° while, ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ 100% ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ Π΄Π΅Π»Π°Π΅Ρβ¦ Π½ΠΈΡΠ΅Π³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΎΠΉ; ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ) Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΠ‘. Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎΠΌ ΠΎΡΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°ΡΠΈΡΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΎ: Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ (Ρ. Π΅. ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ±ΠΎΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ, ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ: ΠΌΡΡΡΠ΅ΠΊΡΡ, ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠ΅ ΠΎΠ½ΠΈ β Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ: ΠΎΠ½ΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΡΠ°Π²ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ (ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ) ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΡΡΡΠ΅ΠΊΡ. ΠΡΡΡΠ΅ΠΊΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«ΠΠ·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Β». ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡΡΡΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΡΡ (std::cout), ΠΈ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ. ΠΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΌΠ΅ΡΠ°Π»ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΠΎ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΌ, ΠΌΡ Π·Π°ΡΠΈΡΠ°Π΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΌΡΡΡΠ΅ΠΊΡΠΎΠΌ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ Π²ΡΠ·ΠΎΠ²Π° mutex.lock(), Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΌΡΡΡΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ. ΠΠΎΠ³Π΄Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ Π²ΡΠ·ΠΎΠ²Π° mutex.lock(), ΠΌΡΡΡΠ΅ΠΊΡ ΡΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π²ΡΠ·ΠΎΠ² sf::sleep, ΡΠΏΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°). ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΌΡΡΡΠ΅ΠΊΡ, Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΌΡΡΡΠ΅ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΡΡΡΠ΅ΠΊΡ β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ β Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡΠΊΠ°ΡΡ Π΄ΡΡΠ³ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ.
ΠΠ°ΡΠΈΡΠ° ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ²
ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ: ΠΌΡΡΡΠ΅ΠΊΡΡ ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡ Π·Π°ΡΠΈΡΠ°ΡΡ. ΠΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ Π² ΠΏΠ»Π°Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡΡΡΠ΅ΠΊΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½? ΠΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π²Π΅ΡΠ½ΠΎ. ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΏΡΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΡΡΡΠ΅ΠΊΡ, Π±ΡΠ΄ΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ Π½Π°Π²ΡΠ΅Π³Π΄Π°. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Β«Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΒ».
Π§ΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΌΡΡΡΠ΅ΠΊΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π² ΡΡΠ΅Π΄Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ (ΠΌΡΡΡΠ΅ΠΊΡ) ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, SFML ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ RAII ΠΊΠ»Π°ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΌΡΡΡΠ΅ΠΊΡ Π² ΠΊΠ»Π°ΡΡ sf::Lock. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ΅. ΠΡΠΎΡΡΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ sf::Lock ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ
ΠΠ΅ΡΡ, ΡΠ°ΡΡΠΎ ΡΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΠΈΠ· Π²ΠΈΠ΄Ρ: ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π±Π΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° sf::Thread. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ :
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ startThread() Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΆΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°). ΠΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»Π°.
Π ΡΠ΅ΠΌ Π΄Π΅Π»ΠΎ? ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ sf::Thread ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ startThread(), ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ sf::Thread, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² wait(), ΠΊΠ°ΠΊ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ Π½Π΅ΠΉ.
Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅: Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ sf::Thread, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΆΠΈΠ»ΠΈ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎΡΠΎΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΅Π³ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ
ΠΡΠΎΡΠ΅ΡΡ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠΎΠΊ β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°Π±ΠΎΡ ΡΡΡΡΠΊΡΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΡ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΡΡΠ΅ΠΊ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
Π¦Π΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ System.Threading.Thread, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ .
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java: ΡΡΡΡ, Β«ΠΏΠ»ΡΡΡΒ» ΠΈ ΡΠ°ΡΡΡΠ΅ Π»ΠΎΠ²ΡΡΠΊΠΈ
ΠΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ (Ρ.Π΅. ΡΠ»Π΅Π½Ρ ΡΠ΅ΠΌΡΠΈ) ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: ΠΌΡΠ»ΠΈ ΠΏΠΎΡΡΠ΄Ρ, Ρ ΠΎΠ΄ΠΈΠ»ΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½, ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈ Π²Π΅ΡΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ Β«ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΈΠΉΒ» ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΅Π΄ΡΡΠ°Π²Ρ, ΡΡΠΎ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΒ» Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠ°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠ»ΠΈ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΒ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΡΠΎ Π·Π°Π²ΠΈΡΠ½Π΅Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΡΠΎΡ ΠΆΠ΅ ΡΠΊΡΠ°Π½ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΒ», ΠΏΠΎΠΊΠ° Π²ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎ ΡΠ°ΡΡΠΈ, Π³Π΄Π΅ Π½Π°ΡΠ½Π΅ΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π§ΡΠΎ ΠΆ, ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π΅ΠΌ ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ!
Π Π΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Β«ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡΒ». ΠΡΡΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° β Π² Π΄ΡΡΠ³ΠΎΠΌ. Π£ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Ρ Π²Π°ΡΠΈΡ Π½Π° ΡΡΠΎ ΡΠ΅ΡΡΡΡΠΎΠ². Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Β«ΡΡΠΏΠΈΡΡΒ», ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΡΠ°Π½Π°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π΅ Π·Π°Π±ΠΎΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ. ΠΠ΄Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ π
Π£ΡΠΊΠΎΡΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π’ΡΡ Π²ΡΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ, Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅, ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ 1000 Π·Π°Π΄Π°Ρ ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π·Π° 1000 ΡΠ΅ΠΊΡΠ½Π΄, Π΄Π²Π° ΡΠ΄ΡΠ° β Π·Π° 500 ΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠΈ β Π·Π° 333 Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² 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. ΠΡΠ»ΠΈ ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΡΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ.