Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠΎΡΠΎΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΅Π³ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ
ΠΡΠΎΡΠ΅ΡΡ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠΎΠΊ β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°Π±ΠΎΡ ΡΡΡΡΠΊΡΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΡ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΡΡΠ΅ΠΊ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
Π¦Π΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ System.Threading.Thread, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ .
ΠΡΠ½ΠΎΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅, ΠΈ ΡΡΠ΅ΡΠ±, Π½Π°Π½Π΅ΡΠ΅Π½Π½ΡΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π±ΡΠ²Π°Π΅Ρ ΡΡΡΠ΄Π½Π΅Π΅ ΠΎΡΠ΅Π½ΠΈΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΆΠ΅Π»ΠΎ Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π° ΠΊΡΠΎ-ΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΡΠ°ΡΠ°Π΅ΡΡΡ Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ. ΠΠΈΡΠ½ΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ: ΡΠ΄Π΅Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΡΠΎΠΊΠΎΠΌ
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΎΡΠ΅ΡΡ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² Ρ ΠΎΠ΄Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠΎΡΠΎΠΊ β ΡΡΠΎ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΡΠΎΠΊΠΈ β ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠΎΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π ΠΎΠ»Ρ ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ β ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠΌΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π²Π΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΄ΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Hyper-Threading, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΎΡ Intel. ΠΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π²ΡΡ ΡΡΠ΄Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ 4 ΡΠ΄ΡΠ°: Π΄Π²Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π΄Π²Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ . ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ?
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈ ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΌΡ Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²Π΅ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΡΠΎΡΡ Π±Π΅Π· Π΄Π΅Π»Π°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΡΠ½ΠΈΠΌΠ°ΡΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ»ΠΈΠ»ΠΈΡΡ Π±Ρ Π±Π΅Π· Π΄Π΅Π»Π°. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΎΠΊΡΠ°ΡΠΈΠ² ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΡΠ΅ΠΌΡ Π·Π°ΠΏΠ°ΡΠΊΠ°ΡΡ ΡΡΠΊΠΈ
ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ Π·Π°ΠΏΡΡΡΠΈΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΄Π²Π΅ Π·Π°Π΄Π°ΡΠΈ). Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ . ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ΅-ΡΡΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΠΎΠ΅:
Summation1 ΠΈ Summation2 β ΡΡΠΎ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°-Π·Π°Π³Π»ΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΠ° ΠΈΡ ΠΌΠ΅ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. Π― ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
ΠΠΎΡ, Π²ΠΈΠ΄ΠΈΡΠ΅? ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ. Π’Π°ΠΊΠΎΠ²Π° ΡΠΈΠ»Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎ Π±ΡΠ» Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² ΡΠ΅Π³ΠΎ-ΡΠΎ β Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΠΎ βΡΡΠΎ-ΡΠΎβ ΠΎΡΠ²ΠΎΠΈΡΡ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΡΠΎΠΊΠ°Ρ
: ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Ρ. Π΄. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΆΠ΅Π»ΠΎ Π² ΡΡΠ΅Π½ΠΈΠΈ β Π»Π΅Π³ΠΊΠΎ Π² Π±ΠΎΡ!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΠΊ Π½ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ:
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Ρ ( ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²;
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΠΏΡΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²ΠΈΡΡ ΡΠΎΡΠΊΠΈ Π½Π°Π΄ Β«iΒ»:
ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΡ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠΈΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΄Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅;
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ΄ΡΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ΅Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡ Ρ ΠΎ Π΄Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²;
ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ β ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ²ΠΎΠΉ ΡΡΠ²Π° ΡΠ΄ΡΠ°;
ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ β ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡ Ρ ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²;
ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ Β«Π²Π΅ΡΠ²ΡΒ», Β«Π½ΠΈΡΡΒ», ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡ Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΡΠ°ΡΡΡΠΌΠΈ;
ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Ρ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Ρ;
Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎΠ³Π΄Π° ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ;
Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈ Ρ , ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π° Π΄Π΅Π»Π΅? ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π½Π°Ρ ΠΎΠ΄ ΠΈ ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ ΠΈ Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ° Π΅ Π Π‘ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΡΠ΄Π΅Ρ.
ΠΠ° Π΄Π΅Π»Π΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ : Ρ Π²Π°Ρ Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΠ‘ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ β Π²ΡΠ΅ ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ: Π² ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΌΡΠ·ΡΠΊΡ, Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΠΏΠΎΡΡΡ, Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΈΡΠΈΡΠ΅ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ΅ Β«ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β», ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΎΡΠΊΡΡΡΠ°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠ°ΡΠ·Π΅Ρ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° β ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠ°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ, ΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ ΡΠ΄ΡΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½ΠΎΡΠΌΠΎΠΉ ΠΏΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ β ΡΡΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΡΠΌΠ΅Ρ Π²Π΅ΡΡ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½Ρ
Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ ΠΡ Π½Π°ΠΆΠΌΡΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. Π§Π°ΡΡΡ 1. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π·Π»ΠΎ ΠΈΠ»ΠΈ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½Π΅Ρ
ΠΠ½Π΅ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ (application-, web-, index-server).
ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° β ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Ρ
ΠΎΠ·ΡΠΉΡΡΠ²ΠΎ.
Π Π°ΡΡΡΡΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠ°ΡΡΠΎ ΡΠΏΠΈΡΠ°ΡΡΡΡ Π² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΆΠ΅Π»Π΅Π·Π½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Ρ.ΠΊ. ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΡΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΠΆΠ΅ΡΡΠΊΠΈΡ
Π΄ΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ΅ΡΠΈ ΡΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
Π Π΅Π΄ΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π½ΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° (ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ).
Π§Π°ΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΡΡΡΠΈΠ² ΠΏΡΠΎΡΠ°ΠΉΠ»Π΅Ρ, ΠΈΡΠΊΠ°ΡΡ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, Π»Π΅Π·ΡΡ Π² source code ΠΈ ΠΏΡΠ°Π²ΠΈΡΡ Π»ΡΠΏΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΡΠ°ΠΌ, ΡΠ΅Π³ΠΎ Π³ΡΠ΅Ρ
Π° ΡΠ°ΠΈΡΡ, ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½ΡΡ
Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡ ΠΈΠ·Π»ΠΎΠΆΠΈΡΡ Π·Π΄Π΅ΡΡ. ΠΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠ³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ thread ΠΈ context switch, ΠΈ Π·Π½Π°Π΅Ρ Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ mutex, semaphore ΠΈ Ρ.Π΄.
ΠΡΠ±ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΡΡΠ΅ΠΌΡ ΡΡΠΎ-ΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠ΅ΠΌ Β«Hello worldΒ», ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ β Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π² ΠΎΠ±ΡΠΈΠΉ channel, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ hash-ΡΠ°Π±Π»ΠΈΡΡ), Π·Π°Π±ΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ Ρ.Π΄.
Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏ, ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π²Π°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΊΡΠΈΡΠΈΡΠ½ΡΡ
ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½, ΡΠ΅Π΄ΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 1 writer/ N readers).
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΎΡΠΏΠΎΡΠΈΠΌΠ°. Π§ΡΠ΅Π·ΠΌΠ΅ΡΠ½Π°Ρ ΠΆΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ Π²ΡΠ΅Π΄Π½Π° β ΠΊΡΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° 2-Ρ
ΠΈΠ»ΠΈ 3-Ρ
ΠΏΠΎΡΠΎΠΊΠ°Ρ
, ΡΠΆΠ΅ Π΄Π»Ρ 5-ΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠΈ Β«singlethreadedΒ», Π° Π½Π° 20-ΡΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΠΎΠΆΠΈΡΡΡ ΡΠΏΠ°ΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ β ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π»ΠΈΠΏΠ°Π΅Ρ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ HDD (Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ seek), ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΡΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ±ΡΠΎΡ ΠΊΡΡΠ° ΠΏΡΠΈ context switch β CPU cache ΠΏΡΠΎΡΡΠΎ ΡΡΠΏΠΎ ΠΎΡΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ (semaphore)
Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡΡΡ Π² Π±ΠΎΡ (Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°) β ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ°ΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ execution plan, Ρ.Π΅. ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈ Π²ΡΠ΅Π³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° β ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠ°Π²ΠΈΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ . Π― Π½Π΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊ Π½Π΅ΠΎΠ±Π΄ΡΠΌΠ°Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΡΡΠΏΠΎΠΊΠΎΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°), Ρ Π½Π΅ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎ Π±Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΒ», Π²Π½ΠΈΠΊΠ½ΡΠ² Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
Π Π°ΡΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ (priority)
ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Β«ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π»ΠΎΠ³ΠΈ ΠΏΠΈΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΡΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΠ² Π΅ΠΌΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Β«ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡΒ» ΠΏΡΠΎΡΠ΅ΡΡ, Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°Ρ log-level.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΠ»ΠΈ ΠΏΡΠ» ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·Π½ΠΎΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΡΡΠΈ:
ΠΡΠΈ ΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠ»Π° Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ.
Divide et impera (Π Π°Π·Π΄Π΅Π»ΡΠΉ ΠΈ Π²Π»Π°ΡΡΠ²ΡΠΉ)
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΡΠΊΠ° ΠΊΠΎΠ΄Π° β Ρ.Π΅. Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ°ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ, ΡΡΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡ, ΠΈ Ρ.Π΄.
Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠ΄Π΅Π»ΡΡ ΠΊΡΡΠΊΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ
ΠΏΠΎΠ·ΠΆΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ½ΠΎΠ²ΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ρ.Π½. background service). ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΏΡΠ» ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ aka RPC (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² WebService). ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° (ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Ρ.Π΄.) ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ LOG-ΠΏΠΎΡΠΎΠΊΠΎΠΌ:
ΠΡΠ΅ΡΠ΅Π΄ΠΈ, FIFO, LIFO ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΏΡΠ»Π° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π΄Π΅Π»ΠΎ Π½Π΅ Ρ ΠΈΡΡΠΎΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°Π²Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ LIFO ΡΡΠΎΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡΠΎΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΎΠ΄ΠΈΠ½ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ Π²Π°ΠΆΠ½Π°). ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ LIFO ΠΈ FIFO (ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ LIFO ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌΠΈ FIFO ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠΎΠΈΡΡ Π±ΡΡΠ΅Ρ Ρ ΠΊΠΎΠ½ΡΠ° ΠΈ Ρ.Π΄.). Π‘ΠΌΡΡΠ» ΡΠ°ΠΊΠΈΡ ΠΈΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊΡΠΎΠ΅ΡΡΡ Π² ΠΊΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΎΡΡΠ°ΡΡΠΈ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π’.Π΅. Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· LIFO Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π΅ΡΡΠ°Π²Π½Π΅Π½Π½ΠΎ Π²ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Ρ FIFO ΡΠΎΠΉ ΠΆΠ΅ Π΄Π»ΠΈΠ½Π½Ρ.
ReadWriteMutex
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠ°ΠΉΠ», ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΠ»ΠΈ hash ΡΠ°Π±Π»ΠΈΡ ΠΈ Ρ.Π΄. ΠΡΠΈ ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΡΠΈΡΠ°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ (ΡΡΠΎ Π±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ dirty read ΠΈ Π²ΡΠ»Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π²Π°Π»ΠΈΠ΄Π½Ρ).
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠ°ΠΊΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ Π΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ RW-mutex, Π³Π΄Π΅ ΡΠΈΡΠ°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»Π½Π°Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° (ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ).
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ read/write-mutex, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ cache ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ API ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ callback Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RW-mutex, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ API. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ
RW-mutex Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π½Π°ΡΡ (ΡΠΎΠΎΠ±ΡΠ°ΡΡ mutex) ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ reader-ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈΠ½ΠΎΠ³Π΄Π° writer-ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
reader-ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠ°ΠΊΠΎΠΌ mutex.
Π§ΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠΈΡΠ°ΠΉΡΠ΅ source code
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅Π·Π½Π°Π½ΠΈΡ, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π° ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡ
Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ Π±Π°Π·ΠΎΠ²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΡ ΡΠ°Π·ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ RW-mutex.
ΠΠ΄ΠΈΠ½ ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΊΠ°ΠΊ-ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» fair RW-mutex, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΡΠΉ Π½Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°Ρ
. ΠΠ½ ΠΏΠΎΠ»Π΅Π½ΠΈΠ»ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ reader-ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΊΠ»Π°ΡΡ RWMutex (Π·Π°Π΄Π°Π» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Β«ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅Β» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 500) ΠΈ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ writer-ΠΏΠΎΡΠΎΠΊΠ°:
Π ΠΏΡΠΈ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, ΡΠ΅ΡΠ²Π΅Ρ ΡΡ
ΠΎΠ΄ΠΈΠ» Π² Π³Π»ΡΠ±ΠΎΠΊΠΈΠΉ Π·Π°ΠΏΠΎΠΉ Π»ΠΎΠΆΠΈΠ»ΡΡ Π² ΡΠΏΡΡΠΊΡ. ΠΡΠ΅ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π» Π΄Π²Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ β Π²Π·ΡΠ² ΡΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 500 ΠΈ Π½Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ°ΠΊΠΎΠΉ RW-mutex Π½Π° ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. Π’.ΠΊ. RW-mutex Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ fair β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
Π’.Π΅. ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ hashTab 100-Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ reader-ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΌΡ ΠΈΠΌΠ΅Π»ΠΈ 100*500 Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ (ΠΈ Π²ΡΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π² ΠΎΡΠ°Π΄ΠΎΠΊ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΈΠ·-Π·Π° context switch). Π‘Π°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π² ΡΡΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ» Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ RWSyncHashTable, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
ΠΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ API ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΆΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ β ΡΠ°ΡΡΠΎ Π²ΡΠ΅Π΄. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΡΡ ΠΌΠ°ΡΠ»ΠΎΠΌ ΠΈΡΠΏΠΎΡΡΠΈΡΡ.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, Π·Π°Π³Π»ΡΠ΄ΡΠ²Π°ΠΉΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ API β ΠΈ ΡΠ°ΠΊΠΈΠ΅ Π»ΡΠΏΡ, Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ, ΠΎΠ±ΠΎΠΉΠ΄ΡΡ ΠΠ°Ρ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ, ΡΡΠΎ ΠΆΠ΄Π΅Ρ. ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°Π²ΠΎΠ»ΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ ΡΡΠΎΠΈΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π½Π° ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ (Π°-ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΠΊΠ²). ΠΡΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΡΡΠΈΠ½Ρ, ΠΏΡΠΎΡΡ ΠΏΡΠΎΡΡΠΈΡΡ ΠΏΠΎΠΊΠΎΡΠ½ΠΎ β Π½Π΅ ΡΠΎ Π·Π»Π°. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ, ΠΊΡΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ.
ΠΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°
Bauman National Library
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ β ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Ρ. Π΄.) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅/ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΠΎΡΠΎΠΆΠ΄ΡΠ½Π½ΡΠΉ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Ρ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. [ΠΡΡΠΎΡΠ½ΠΈΠΊ 1]
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π‘ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ²Π°Π·ΠΈΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠΌΠ΅ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅Π΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π½ΠΎ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π€Π°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ (Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²). ΠΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ (Π³Π»Π°Π²Π½ΡΠΉ) ΠΏΠΎΡΠΎΠΊ.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ Π½ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡΡ, Π½ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΡΡΡΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ.
Π Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ 2 API ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ POSIX (Portable Operating System Interface for Unix). ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΈΠΌΠ΅Π½Π°Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ pthread_ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ pthread.h.
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π Π°Π·Π»ΠΈΡΠ°ΡΡ Π΄Π²Π΅ ΡΠΎΡΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ:
Π’ΠΈΠΏΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ . Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΡΠΎ Π·Π°Π΄Π°ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½Π΅ΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΠ· ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΌΡΡΡΠ΅ΠΊΡΡ), ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Ρ.ΠΏ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ΄ΡΠ° ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½ΠΎ ΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ func_p. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (void *) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°. Π Π΅Π°Π»ΡΠ½ΠΎ ΠΆΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ arg_p. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· tid_p.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ attr_p ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, Π·Π°Π΄Π°ΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ»ΠΈ attr_p=NULL, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ «ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ» (Π½ΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, Ρ.ΠΊ. Π² ΡΠ°Π·Π½ΡΡ ΠΠ‘ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ, Ρ ΠΎΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅). ΠΠ΄Π½Π° ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ attr_p, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ attr_p, Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ «ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ» (ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ). ΠΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°:
ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ±Π»Π°ΡΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΡΡΠΈ
ΠΠ»Ρ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Ρ (ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π·Π°Π½ΠΎΠ²ΠΎ).
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°
Π ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ exit(), ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ return() Π² ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ pthread_create(). ΠΠΎΡΠΎΠΊ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ status ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NULL. ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ pthread_cancel() (Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ pthread_setcanceltype, pthread_setcancelstate ΠΈ pthread_testcancel).
ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°
ΠΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ tid. ΠΠΎΡΠΎΠΊ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ tid Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ
ΠΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ°Π²Π½ΡΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΎΡΡΠ»ΠΊΠ° ΡΠΈΠ³Π½Π°Π»Π° ΠΏΠΎΡΠΎΠΊΡ
ΠΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ signum Π² ΠΏΠΎΡΠΎΠΊ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ tid.
ΠΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΊΡ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ mode, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° old_p Π½Π΅ ΡΠ°Π²Π½ΠΎ NULL, ΡΠΎ Π² ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ old_p, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ.
ΠΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π΄Π°Π½Π½ΡΠΌ. ΠΠ΄Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²: ΠΊΠ°Π½Π°Π»Ρ, ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΌΠ΅ΠΆΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°:
Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡ ΡΠ΄ΡΠ΅Π½ΠΈΡ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ (char, int, double) ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ (Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ), ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ·Π°ΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΡΠ°Π·ΡΡΡΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ pthread_mutex_lock() ΠΏΠΎΡΠΎΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°Ρ Π²Π°ΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠΆΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, ΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ (Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ²) ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅. ΠΠΎΡΠ»Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ pthread_mutex_lock() Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΡ.
Π€ΡΠ½ΠΊΡΠΈΡ pthread_mutex_unlock() ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. ΠΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π΅ Π²Π»Π°Π΄Π΅Π»Π΅Ρ.
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠΈΡ ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ²Π°. ΠΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅Π±Ρ ΠΏΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ pthread_cond_wait()), ΠΏΡΠΈ ΡΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ) ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ pthread_cond_signal() ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΈ Π΅ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π²ΡΠ΄Π΅Π»ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΡΠ°Π·ΡΡΡΠ°Π΅Ρ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ ΠΏΠ°ΠΌΡΡΡ.
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ mp, Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ cvp. ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ pthread_cond_signal() ΠΈ pthread_cond_broadcast(). ΠΠ΄Π½ΠΎΠΉ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².
Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΈ pthread_cond_wait(), Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Π·Π°Π΄Π°ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ (Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅).
ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊ. ΠΡΠ»ΠΈ ΡΠΈΠ³Π½Π°Π»Π° ΠΏΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ .
ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
Π‘Π΅ΠΌΠ°ΡΠΎΡΡ
Π‘Π΅ΠΌΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ (post) ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ (wait) Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΡΠ°ΠΊ, ΡΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠΎ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΠ½ ΡΡΠ°Π½Π΅Ρ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ (Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ) ΠΏΠΎΡΠΎΠΊΠΎΠΌ.
ΠΠΎΡΠΎΠΊΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π½ΠΈΡ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ «Π²Π»Π°Π΄Π΅Π»ΡΡΠ°», Ρ.Π΅. ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ.
Π POSIX-Π²Π΅ΡΡΠΈΠΈ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π½Π° 1, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΎΠ΄ΠΈΠ½ (ΠΈΠ·, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ) ΠΏΠΎΡΠΎΠΊ (ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ).
ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π½Π° 1. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠΎ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ.
Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ sem_wait().
ΠΠ°ΡΡΠ΅ΡΡ
ΠΠ°ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΡΠ΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ count, Π·Π°Π΄Π°ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, «ΠΏΠΎΠ΄ΠΎΡΠ΅Π΄ΡΠΈΠΉ» ΠΊ Π±Π°ΡΡΠ΅ΡΡ (ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΠΉΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ pthread_barrier), Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ Π±Π°ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² count.
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π±Π°ΡΡΠ΅Ρ, Π²ΡΠ΄Π΅Π»ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ Π½Π°Π·Π½Π°ΡΠ°Ρ count «ΡΠΈΡΠΈΠ½ΠΎΠΉ» Π±Π°ΡΡΠ΅ΡΠ°. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π°ΡΡΠΈΠ±ΡΡΡ Π±Π°ΡΡΠ΅ΡΠΎΠ² Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ pthread_barrier_init ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NULL.
ΡΠ°Π·ΡΡΡΠ°Π΅Ρ Π±Π°ΡΡΠ΅Ρ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π±Π°ΡΡΠ΅ΡΠΎΠΌ count ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΠ³Π½Π°Π»Π° (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±ΡΠ» Π½Π°Π·Π½Π°ΡΠ΅Π½) Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²Π΅ΡΠ½Π΅Ρ ΠΏΠΎΡΠΎΠΊ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ count ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΅ΡΠ΅ Π½Π΅ ΡΠΊΠΎΠΏΠΈΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π±Π°ΡΡΠ΅ΡΠΎΠΌ.