☕️ Java BACKEND developers </>☕️
185 subscribers
89 photos
148 videos
34 files
212 links
Download Telegram
Forwarded from Xurshidbek Kurbanov
#virtual #thread #javafuture
Java #BackEnd dan interview qilsam #Thread haqida 3 ta savol beraman.
1- Main thread nima va request larni faqat main thread olishda qanday muammo bor?
2- Request larni Main thread emas alohida yangi Thread da olish qanday muammo bor?
3- Yangi Thread muammosini Thread Pool qanday hal qiladi?

Ular qatoriga #Virtual #Thread ham qo’shildi, u #Javaning #kelajagi sifatida ko’rilmoqda. Lightweight threaded model 2018-yil #ProjectLoom bilan birga ishga tushilgan va 2023 yilda #JDK21 ning xususiyati sifatida qo’shildi. Chuqurroq kirib Thread va Virtual Thread farqlarini solishtirib ko’rdim.

#Thread:
- 1,000,000 ta threadlarni ishga tushirish: ~ 31.64 sekund
- Platform Thread
- Scheduling by OS
- Kernel thread, 1:1 mapping
- Runnable

#VirtualThread:
- 1,000,000 ta threadlarni ishga tushirish: ~ 0.38 sekund
- Virtual Thread
- Scheduling by JVM
- Carrier thread, 1:N mapping
- Continuation

🔷 Join @xurshidbek_kurbanov
Forwarded from Xurshidbek Kurbanov
#virtual #thread #future #of #java
Virtual Thread, thread yaratish va ishga tushurishda tez ekanini oldingi postimizda aytib o’tgandik. Yana bir yangilikni ko'rdim yani, “#VirtualThread - #Nonblocking I/O ni qo’llab quvvatlaydi“ #Tochnami ? Odatda Blocking I/O dan qutulish uchun Spring #WebFlux & #Netty lar ishlatilinadi. Buni rost ekanini isbotlash uchun quyidagicha test case yaratildi.

1- Tomcat thread 10 ta
2- 10 sekundda response qaytaratigan API
3- Bir vaqtning o’zida 100 ta request

Time = (100 requests) / (10 tomcat threads) * (10 second API call) = 100 sec

Oddiy #PlatformThread dan foydalansak yuqoridagi testimiz 110 sekund atrofida vaqt sarflaganini va bu testimizni #VirtualThread ni ishlatib qilganimizda esa 60 sekund vaqt sarflaganini ko’rdik. Xulosa, Virtual Thread Nonblocking I/O ni qullab quvvatlaydi va bunga erishishda Continuation yield dan foydalanadi. #NIO

🔷 Join @xurshidbek_kurbanov