ThreadLocal эмнени колдонот?
ThreadLocal эмнени колдонот?

Video: ThreadLocal эмнени колдонот?

Video: ThreadLocal эмнени колдонот?
Video: Как запечь рыбу в духовке? Карп запеченный в духовке рецепт 2024, Декабрь
Anonim

Java ThreadLocal жиптин жергиликтүү өзгөрмөлөрүн түзүү үчүн колдонулат. Объекттин бардык жиптери анын өзгөрмөлөрүн бөлүшөрүн билебиз, ошондуктан өзгөрмө жип коопсуз эмес. Биз жиптин коопсуздугу үчүн синхрондоштурууну колдоно алабыз, бирок синхрондоштуруудан качууну кааласак, ThreadLocal өзгөрмөлөрүн колдонсок болот.

Ошентип, ThreadLocal классы эмне үчүн колдонулат?

Java ThreadLocal класс камсыз кылат жип-жергиликтүү өзгөрмөлөр. Ал бир эле жип аркылуу гана окуй турган жана жаза турган өзгөрмөлөрдү түзүүгө мүмкүндүк берет. Эгерде эки жип бир эле кодду аткарып жатса жана ал коддун а шилтемеси бар болсо ThreadLocal өзгөрмө, анда эки жип бири-биринин жергиликтүү өзгөрмөсүн көрө албайт.

Жогорудагыдан тышкары, эмне үчүн ThreadLocal статикалык жана акыркы? Биз көрүп тургандай, статикалык мисалы ThreadLocal издөө ачкычы катары гана колдонулат. Анын маанисин өзгөртүү мүмкүн эмес, анткени ал жарыяланган финал . The ThreadLocal инстанция толугу менен жип үчүн коопсуз, анткени ал окуу үчүн гана, андыктан синхрондоштуруу талап кылынбайт. Потенциалдуу жип үчүн коопсуз эмес нерсе максаттуу объект болуп саналат.

Ошо сыяктуу эле, сиз ThreadLocal Java'да кантип иштейт деп сурасаңыз болот?

The Java ThreadLocal класс бир эле жип аркылуу гана окула турган жана жазыла турган өзгөрмөлөрдү түзүүгө мүмкүндүк берет. Ошентип, эки жип бир эле кодду аткарып жатса да, коддун бир эле шилтемеси бар ThreadLocal өзгөрүлмө, эки жип бири-бирин көрө албайт ThreadLocal өзгөрмөлөр.

Эмне үчүн ThreadLocal статикалык?

Кыскасы, ThreadLocal объект ачкыч-маани картасы сыяктуу иштейт. статикалык финал ThreadLocal өзгөрмөлөр жип коопсуз болуп саналат. статикалык түзөт ThreadLocal тиешелүү жип үчүн гана бир нече класстарда жеткиликтүү өзгөрмө. бул тиешелүү Глобалдык өзгөрмөлүү декарациянын бир түрү жергиликтүү жип бир нече класстар боюнча өзгөрмөлөр.

Сунушталууда: