Π ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Random?
Random Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΈ seed'Π΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° timestamp'Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ j.u.Random.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π½Π°Ρ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΊΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π’Π°ΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΡΠΎΠΉΠΊΠΈΠΌ. ΠΠ»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SecureRandom
Random Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΈ seed'Π΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° timestamp'Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ j.u.Random.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π½Π°Ρ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΊΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π’Π°ΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΡΠΎΠΉΠΊΠΈΠΌ. ΠΠ»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SecureRandom
π39
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
42%
1
37%
2
6%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
15%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π16
GC ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΅Π³ΠΎ Π²ΠΈΠ΄Ρ Π² JVM. ΠΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠΈΡΠ°ΡΡ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠΌ. ΠΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° (ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ).
ΠΠΈΠ΄Ρ GC:
β’ Serial Stop the World
β’ Parallel
β’ CMS (Π ΡΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Parallel?)
β’ G1 (ΠΠ°Π·Π²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ CMS)
β’ Shenandoah
ΠΠΈΠ΄Ρ GC:
β’ Serial Stop the World
β’ Parallel
β’ CMS (Π ΡΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Parallel?)
β’ G1 (ΠΠ°Π·Π²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ CMS)
β’ Shenandoah
π16
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
22%
string string string
5%
null null null
12%
string null 0
25%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ // 10
22%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ // 22
4%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ // 26
10%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
π26π5π1π1
Generics: Π ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ type-erasure? Π ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² C++?
β’ Π’ΠΈΠΏΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Ρ.Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ². Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ
β’ type-erasure β ΡΡΠΎ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π² runtime. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ List, Set Π²ΠΌΠ΅ΡΡΠΎ List<Integer>, Set<Integer>, Π½Ρ ΠΈ type-cast'Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
β’ Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Java, Π² Π‘++ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π°). ΠΠ° ΠΏΡΠΎΡΡΡΡ ΠΌΠ΅Π½Ρ Π·Π΄Π΅ΡΡ Π°Π΄Π΅ΠΏΡΡ Π‘++.
β’ Π’ΠΈΠΏΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Ρ.Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ². Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ
β’ type-erasure β ΡΡΠΎ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π² runtime. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ List, Set Π²ΠΌΠ΅ΡΡΠΎ List<Integer>, Set<Integer>, Π½Ρ ΠΈ type-cast'Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
β’ Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Java, Π² Π‘++ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π°). ΠΠ° ΠΏΡΠΎΡΡΡΡ ΠΌΠ΅Π½Ρ Π·Π΄Π΅ΡΡ Π°Π΄Π΅ΠΏΡΡ Π‘++.
π25β€1
ΠΠ°ΠΊΠΎΠ΅ ΠΈΠΌΡ Ρ Π±ΠΈΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅?
Anonymous Quiz
4%
jpaClientRepository
69%
clientRepository
5%
JpaClientRepository
11%
accountRepository
6%
ΠΎΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄Π²Π° Π±ΠΈΠ½Π°:dataSource ΠΈ repository
5%
dataSource
π26π₯1
Generics: ΠΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° List<Parent>. Child Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Parent. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ List<Child>?
Π ΡΠΈΠΏΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ List<? extends Parent>
Π ΡΠΈΠΏΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ List<? extends Parent>
β‘24π4β€βπ₯1
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
46%
7 4
13%
5 2
7%
ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
34%
ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π16π₯4β‘3π1
Hard-references, weak references, soft-references, phantom-references
β’ Hard-references β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ eligible for collection ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· root set
β’ Weak-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ»Π°Π±ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅Π³ΠΎ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
β’ Soft-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π°Π»ΡΡΡΡ GC ΠΏΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
β’ Phantom-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅. ΠΡΠΆΠ½Ρ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ»ΠΎΠΊ (Π²ΠΌΠ΅ΡΡΠΎ finalize)
β’ Hard-references β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ eligible for collection ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· root set
β’ Weak-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ»Π°Π±ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅Π³ΠΎ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
β’ Soft-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π°Π»ΡΡΡΡ GC ΠΏΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
β’ Phantom-references β ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅. ΠΡΠΆΠ½Ρ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ»ΠΎΠΊ (Π²ΠΌΠ΅ΡΡΠΎ finalize)
β‘12π5π₯3π2
Anonymous Quiz
12%
request
65%
singleton
10%
session
14%
prototype
π20β‘4π₯3π3π€©2
ΠΠ°ΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Java?
β’ Π§Π΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
β’ Π§Π΅ΡΠ΅Π· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ factory-method
β’ Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΡΠ΅ΡΠ½ Builder
β’ Π§Π΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
β’ Π§Π΅ΡΠ΅Π· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ factory-method
β’ Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΡΠ΅ΡΠ½ Builder
π36β‘4π4π₯3
ΠΠ°ΠΊΠΈΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
Anonymous Quiz
8%
Warning ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
10%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
16%
ΠΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ "TEST " Π±Π΅Π· ΠΊΠ°Π²ΡΡΠ΅ΠΊ
35%
ΠΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ "TEST TEST " Π±Π΅Π· ΠΊΠ°Π²ΡΡΠ΅ΠΊ
10%
ΠΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ "TEST TEST TEST " Π±Π΅Π· ΠΊΠ°Π²ΡΡΠ΅ΠΊ
21%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π16π10β‘2π1
Π Π°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ classloader'Ρ ΠΈ ΠΈΡ
ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ. ΠΠ· Π·Π° ΡΠ΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ NoClassDefFoundError, NoSuchMethodError?
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ classloader'ΠΎΠ²
1. Bootstrap
2. System
3. Application
β’ NoClassDefFoundError ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π½Π΅Ρ Π² classpath
β’ NoSuchMethodError ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π²Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΅ΡΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° A Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ B, Π½ΠΎ Π² classpath Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ B, c Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ classloader'ΠΎΠ²
1. Bootstrap
2. System
3. Application
β’ NoClassDefFoundError ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π½Π΅Ρ Π² classpath
β’ NoSuchMethodError ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π²Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΅ΡΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° A Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ B, Π½ΠΎ Π² classpath Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ B, c Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
β‘18π8π€©2π1
ΠΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
Anonymous Quiz
47%
ΠΠ΄Π΅ΠΌ Π³ΡΠ»ΡΡΡ Π² ΠΏΠ°ΡΠΊ
27%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ Okey Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ go()
16%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π
3%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
7%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ Okey Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ stop()
π15
synchronized. wait/notify/notifyAll. ΠΠ°ΠΊ Π΅ΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° j.u.c?
ΠΠ°Π»ΡΡΠ΅ ΡΠ΅Π·ΠΈΡΡ:
β’ synchronized β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ ΡΠΊΠΎΡΠΏ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ Π½Π°ΠΏΡΠΎΡΠΈΠ² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠ° Π² ΠΊΠΎΠ΄Π΅.
β’ wait() β ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ΅Π΄ΠΎΠΌ ΡΠ΅ΡΠ΅Π· notify/notifyAll.
β’ Π£ wait() Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°ΠΌΠΈ.
β’ Π’ΡΠ΅Π΄ ΡΡΠ°Π²ΠΈΡΡΡ Π² wait-set Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅
β’ ΠΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ wait() Π½ΡΠΆΠ½ΠΎ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ (ΡΠ΅ΡΠ΅Π· synchronized)
β’ ΠΠ°Π³ΠΈΡ wait() β ΠΎΠ½ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ Π»ΠΎΠΊ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π΄ ΠΌΠΎΠ³ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΈ Π²ΡΠ·Π²Π°ΡΡ notify/notifyAll
β’ notify() β Π±ΡΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΡΠ΅Π΄ΠΎΠ², Π½ΠΎ ΠΠ°ΠΆΠ½ΠΎ! β Π»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ, Ρ.Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΡΡΠ΅Π΄ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ, Π½ΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π° Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Ρ.ΠΊ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ Π½Π° synchronized). Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ notify Π΅ΡΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ Π·Π°ΡΠΎΡΠΌΠΎΠ·ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΡΡΠ΅Π΄, Ρ.ΠΊ ΡΡΠ΅Π΄ Ρ notify Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΡΡΠΈΠ» ΠΌΠΎΠ½ΠΈΡΠΎΡ
β’ notifyAll() β Π±ΡΠ΄ΡΡ ΡΠ°Π·Π±ΡΠΆΠ΅Π½Ρ Π²ΡΠ΅ ΡΡΠ΅Π΄Ρ Π² wait-set, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π΄Π°ΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ contention (Β«ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Β») Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡ
β’ Π’ΡΠ΅Π΄ Π½Π° wait() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· interrupt, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· spurious wake-up, ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ
β’ Π’Π°ΠΊ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΡΠ΅Π΄, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ while, Π° Π½Π΅ Π² if
β’ ΠΡΠΈΠΌΠΈΡΠΈΠ²-Π°Π½Π°Π»ΠΎΠ³ β Condition
ΠΠ°Π»ΡΡΠ΅ ΡΠ΅Π·ΠΈΡΡ:
β’ synchronized β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ ΡΠΊΠΎΡΠΏ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ Π½Π°ΠΏΡΠΎΡΠΈΠ² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠ° Π² ΠΊΠΎΠ΄Π΅.
β’ wait() β ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ΅Π΄ΠΎΠΌ ΡΠ΅ΡΠ΅Π· notify/notifyAll.
β’ Π£ wait() Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°ΠΌΠΈ.
β’ Π’ΡΠ΅Π΄ ΡΡΠ°Π²ΠΈΡΡΡ Π² wait-set Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅
β’ ΠΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ wait() Π½ΡΠΆΠ½ΠΎ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ (ΡΠ΅ΡΠ΅Π· synchronized)
β’ ΠΠ°Π³ΠΈΡ wait() β ΠΎΠ½ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ Π»ΠΎΠΊ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π΄ ΠΌΠΎΠ³ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΈ Π²ΡΠ·Π²Π°ΡΡ notify/notifyAll
β’ notify() β Π±ΡΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΡΠ΅Π΄ΠΎΠ², Π½ΠΎ ΠΠ°ΠΆΠ½ΠΎ! β Π»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΡΠΊΠ°Π΅Ρ, Ρ.Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΡΡΠ΅Π΄ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ, Π½ΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π° Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Ρ.ΠΊ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ Π½Π° synchronized). Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ notify Π΅ΡΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ Π·Π°ΡΠΎΡΠΌΠΎΠ·ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΡΡΠ΅Π΄, Ρ.ΠΊ ΡΡΠ΅Π΄ Ρ notify Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΡΡΠΈΠ» ΠΌΠΎΠ½ΠΈΡΠΎΡ
β’ notifyAll() β Π±ΡΠ΄ΡΡ ΡΠ°Π·Π±ΡΠΆΠ΅Π½Ρ Π²ΡΠ΅ ΡΡΠ΅Π΄Ρ Π² wait-set, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π΄Π°ΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ contention (Β«ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Β») Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡ
β’ Π’ΡΠ΅Π΄ Π½Π° wait() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π±ΡΠΆΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· interrupt, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· spurious wake-up, ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ
β’ Π’Π°ΠΊ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΡΠ΅Π΄, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ while, Π° Π½Π΅ Π² if
β’ ΠΡΠΈΠΌΠΈΡΠΈΠ²-Π°Π½Π°Π»ΠΎΠ³ β Condition
π17π₯5