ΠΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ
ΠΏΡΠΈΡΠΈΠ½ Π±Π°Π³ΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠΊΠ΅ - ΠΎΠ±ΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ state (shared mutable state). Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΡΠΎΠ³Π°ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ - ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΠ°Π½Ρ ΡΠ»ΠΎΠ²ΠΈΡΡ race condition, deadlock ΠΈΠ»ΠΈ βΠΏΠ»Π°Π²Π°ΡΡΠΈΠ΅β ΠΎΡΠΈΠ±ΠΊΠΈ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ: β
1) ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ immutable-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ - ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π½Π΅ΡΠ΅Π³ΠΎ βΠ΄Π΅Π»ΠΈΡΡβ, ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΈ Π½Π΅ Π½ΡΠΆΠ½Π°. Π Java ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· record, final ΠΏΠΎΠ»Ρ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. β
2) ΠΠ±ΡΠ°ΠΉΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ - ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅ΡΠ΅Π΄Ρ: - BlockingQueue - ConcurrentLinkedQueue - Actor-style ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ. ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ: ΠΠ΅ βΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΠΏΠ°ΠΌΡΡΡβ, Π° βΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡβ. #Java #SoftwareDevelopment
π‘ Java ΡΠΎΠ²Π΅Ρ: ΠΈΠ·Π±Π΅Π³Π°ΠΉ ΡΠ°ΡΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ
26Β ΡΠ΅Π²ΡΠ°Π»Ρ26Β ΡΠ΅Π²
1
~1 ΠΌΠΈΠ½