Найти Π² Π”Π·Π΅Π½Π΅
Java

πŸ’‘ Java-совСт: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Если Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ThreadLocal.withInitial(...). Π§Ρ‚ΠΎ это Π΄Π°Ρ‘Ρ‚: - Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° своя нСзависимая копия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - НС Π½ΡƒΠΆΠ½Ρ‹ синхронизация ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ - Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ создаётся Π»Π΅Π½ΠΈΠ²ΠΎ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ThreadLocal<Integer> counter = ThreadLocal.withInitial(() -> 0); counter.get(); // 0 counter.set(70); counter.get(); // 70

πŸ’‘ Java-совСт: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Если Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ThreadLocal.withInitial(...).

Π§Ρ‚ΠΎ это Π΄Π°Ρ‘Ρ‚:

- Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° своя нСзависимая копия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

- НС Π½ΡƒΠΆΠ½Ρ‹ синхронизация ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

- Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ создаётся Π»Π΅Π½ΠΈΠ²ΠΎ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ThreadLocal<Integer> counter =

ThreadLocal.withInitial(() -> 0);

counter.get(); // 0

counter.set(70);

counter.get(); // 70