자바 구조화 태스크 범위 (미리보기)

Java StructuredTaskScope (preview)

부모 범위가 자식 작업을 시작하고 합류·취소를 책임집니다.

···
html
<div class="v"><header><b>STRUCTURED TASKS</b><span id="state"></span></header><main><div class="parent">PARENT REQUEST</div><div class="forks" id="forks"></div><div class="join" id="join"></div></main><footer>children finish within parent scope</footer></div>
css
.v{width:min(92vw,660px);height:min(86vh,310px);box-sizing:border-box;padding:clamp(9px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:7px;color:var(--fg);font:500 clamp(15px,3.2vmin,17px)/1.25 var(--font-sans, sans-serif)}.v header,.v footer{display:flex;justify-content:space-between;align-items:center;gap:8px;white-space:nowrap}.v header b{color:var(--accent);font-size:.9em}.v header span,.v footer{color:var(--muted);font-size:.82em}.v main{flex:1;min-height:0;position:relative;overflow:hidden}.v .mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.v .active{background:var(--accent)!important;color:var(--bg)!important;border-color:var(--accent)!important}.v .muted{opacity:.28} .parent{text-align:center;padding:6px;border:1px solid var(--line);border-radius:5px;font:600 .85em ui-monospace,monospace}.forks{height:46%;display:flex;align-items:center;justify-content:space-around;gap:8px}.child{width:43%;padding:9px 3px;border:1px solid var(--line);border-radius:5px;text-align:center;font:600 .82em ui-monospace,monospace}.join{text-align:center;color:var(--accent);font:600 .8em ui-monospace,monospace}
js
let n=0;const a=["running","failed","failed","closed"],b=["running","running","cancelled","closed"];function draw(){document.getElementById("forks").innerHTML="<div class=\"child "+(n===1?"active":"")+"\">CHILD A<br>"+a[n]+"</div><div class=\"child "+(n===2?"active":"")+"\">CHILD B<br>"+b[n]+"</div>";document.getElementById("join").textContent=["fork both","A fails","cancel B","scope joins / closes"][n];document.getElementById("state").textContent="step "+(n+1);n=(n+1)%4}draw();setInterval(draw,920)

StructuredTaskScope는 부모 작업 안에서 자식 작업을 fork하고 범위를 떠나기 전 결과를 합류하도록 묶습니다. 실패 정책에 따라 한 자식이 실패했을 때 다른 자식을 취소할 수 있습니다.

Java 26에서 미리보기 기능이므로 사용할 때 미리보기 옵션이 필요하고 API가 바뀔 수 있습니다. 데모는 부모가 두 가지를 시작하고 실패한 가지에 맞춰 나머지를 정리하는 흐름입니다.

언제 쓰나

한 요청이 여러 병렬 하위 작업을 묶고 실패를 함께 처리할 때 검토합니다.

페이지로 열기 ↗