Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
language:java [2026/09/02 03:17] – record pattern, switch pattern ledyxlanguage:java [2026/10/24 07:22] (current) – ledyx
Line 15: Line 15:
   * Optional에서 ifPresentOrElse, or, stream 메소드 추가   * Optional에서 ifPresentOrElse, or, stream 메소드 추가
   * Stream   * Stream
-  * takewhile(predicate)[(참인 경우 뒤에 버림)], dropWhile(predicate)[(참인 경우 앞에 버림)]+  * takewhile(predicate)((참인 경우 뒤에 버림)), dropWhile(predicate)((참인 경우 앞에 버림))
   * ofNullable(t)   * ofNullable(t)
   * iterate가 for문 인자와 비슷하게 개선 (limit 메서드 대체) -> <nowiki>iterate(0, i -> i < 10, i -> i + 1);</nowiki>   * iterate가 for문 인자와 비슷하게 개선 (limit 메서드 대체) -> <nowiki>iterate(0, i -> i < 10, i -> i + 1);</nowiki>
Line 307: Line 307:
 </sxh> </sxh>
  
 +=== Virtual Thread ===
  
 +"가상 Thread n개 - 플랫폼 Thread 1개 - OS Thread 1개" Mapping 관계
 +
 +여러 요청을 동시에 처리해 전체 처리량을 늘리는 기능.
 +그래서 단일 요청에서 플랫폼 Thread보다 느릴 수 있다.
 +
 +Pooling 방식을 권장하지 않는다. 그때 그때 필요할 때 만들어 사용하라!
 +
 +<sxh java>
 +        /*Thread t = Thread.ofVirtual()
 +                .start(() -> System.out.println("Hello World!"));
 +
 +        t.join();*/
 +
 +        try (ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor()) {
 +            Future<?> future = executorService.submit(() -> System.out.println("Hello, Virtual Thread"));
 +            future.get();
 +        } catch (ExecutionException e) {
 +            throw new RuntimeException(e);
 +        }
 +</sxh>
language/java.1788319029.txt.gz · Last modified: (external edit)