#Java #loom #scopedvalues #threadlocal #VirtualThreads
https://foojay.io/today/banned-threadlocal-java-scoped-values/
Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency
Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.
https://habr.com/ru/articles/1037932/
#Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK
Виртуальные потоки в Java: эволюция, практика, подводные камни
Привет! Меня зовут Денис, я руковожу группой R&D в Naumen Service Management Platform. В этой статье — разбор виртуальных потоков (VT) в Java: почему исторически обычные потоки упирались в I/O, как и зачем появились виртуальные потоки, что пошло не так в Java 21, что исправили в JDK 24–25, а также когда виртуальные потоки необходимы, а когда — лучше от них отказаться.
https://habr.com/ru/companies/naumen/articles/953262/
#виртуальные_потоки #java #jdk24 #jdk25 #project_loom #jep_491 #scoped_values #threadlocal #tomcat
Transactions and #ThreadLocal in #SpringFramework. Thanks to José Paumard for prompting me for following the white rabbit down the hole!
Two years ago, my friend José Paumard held the talk 'Concurrent and Asynchronous Programming : Loom' at the Geneva Java User Group. In his talk, he mentioned that the Spring team would need to completely redesign their approach to transaction: his reasoning was that the transactions are implemented on top of ThreadLocal object and Loom’s virtual threads break this approach. I was intrigued because though I used Spring transactions a lot via the @Transactional annotation, I never opened thou
ThreadLocal и проблемы с памятью: что вы должны знать
Привет, Хабр! ThreadLocal — вещь, которая на первый взгляд кажется отличным решением некоторых проблем многопоточности. Вроде бы просто: привязываешь переменную к каждому потоку, и никто из других потоков не может её трогать. Но за всей этим скрывается куча нюансов, которые могут навести некоторую долю шороха.
Kotlin Coroutines. Часть 2
Прошло так много времени с прошлой статьи, прошу прощения, что заставил вас ждать. Выпускной курс забирал слишком много времени и не было возможности написать столь серьезный материал. Итак, начинаем. Сначала кратко расскажу о материале в этой статье. Для разогрева поговорим о скоупе и о том, для чего он вообще нужен, далее перейдем к контексту, там я попробую объяснить сложное на пальцах, и, наконец, затронем к Continuation.
https://habr.com/ru/companies/reksoft/articles/826326/
#kotlin #kotlin_coroutines #программирование #coroutines #continuation #threadlocal #dispatcher #runblocking #coroutine #scope
Do you know about the ThreadLocal<T> type that allows you to declare data storage that's associated with a specific thread?
If you know that, do you know about a similar concept but for async methods? AsyncLocal<T> is the type that allows you to bind a value to a specific asynchronous method call.
If an async method continues on a different thread, ThreadLocal<T> would not work in such a scenario. That's why AsyncLocal<T> is used.
See the example to get more familiar with how it works!
Docs 📑: https://learn.microsoft.com/en-us/dotnet/api/system.threading.asynclocal-1?view=net-8.0
#dotnet #async #asynclocal #threadlocal
---
If you find this useful, consider giving a like & share ♻