Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Virtual Thread - 導入の背景と、効果的な使い方 -
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuichi.Sakuraba
January 21, 2023
Technology
890
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Virtual Thread - 導入の背景と、効果的な使い方 -
2023.01.21 ブリ会議 発表資料
Yuichi.Sakuraba
January 21, 2023
More Decks by Yuichi.Sakuraba
See All by Yuichi.Sakuraba
Inside Stream API
skrb
1
1.1k
Java 25に至る道
skrb
3
370
Lazy Constant - finalフィールドの遅延初期化
skrb
0
5.5k
Language Update: Java
skrb
2
570
Java 30周年記念! Javaの30年をふりかえる
skrb
4
4.1k
JavaにおけるNull非許容性
skrb
2
4.1k
あなたはJVMの気持ちを理解できるか?
skrb
6
37k
で、ValhallaのValue Classってどうなったの?
skrb
2
17k
Javaにおける関数型プログラミンへの取り組み
skrb
7
780
Other Decks in Technology
See All in Technology
会社説明資料_最新版
demaecan
0
32k
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
290
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
330
eBPF 簡介 2026 版
shunghsiyu
0
190
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
15k
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
650
AIコーディングはじめました
miso
0
160
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
110
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
400
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
150
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
160
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
2
1.6k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Designing for humans not robots
tammielis
254
26k
How STYLIGHT went responsive
nonsquared
100
6.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
460
A Soul's Torment
seathinner
8
3.9k
Accessibility Awareness
sabderemane
1
290
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
610
Unsuck your backbone
ammeep
672
58k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
930
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
- -
• • • • • •
• • • •
• • • →
None
• • • → •
• • • • •
public class ThreadPoolExecutor extends AbstractExecutorService { ... private final class
Worker extends AbstractQueuedSynchronizer implements Runnable { Worker(Runnable firstTask) { setState(-1); this.firstTask = firstTask; this.thread = getThreadFactory().newThread(this); } ...
• • •
• • • • • • •
• • •
• • • • • • •
None
None
None
None
None
int blockingRead(byte[] b, int off, int len, long nanos) throws
IOException { ... // read, no timeout configureSocketNonBlockingIfVirtualThread(); n = tryRead(b, off, len); while (IOStatus.okayToRetry(n) && isOpen()) { park(Net.POLLIN); n = tryRead(b, off, len); } ...
• • • • • • • •
• • • • •
• • • •
• • • •
• • • • • • •
• • • • • • •
- -