「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能

今回は「「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能」についてご紹介します。

関連ワード (信頼性、命令、簡素化等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


オラクルはJavaの最新バージョン「Java 20」正式版のリリースを発表しました。

Java 20 is now available! #Java20 #JDK20 #OpenJDK

Download Now: https://t.co/6hZhod56WB
Release notes: https://t.co/3eTwYKn1Cw
API Javadoc: https://t.co/QUNgT4ol6Y
Features: https://t.co/enLcqDmBQX
Inside Java on JDK20: https://t.co/WIzDOeTgZl pic.twitter.com/7ahbOPF4LQ

— Java (@java) March 21, 2023

Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるバージョンアップが行われ、そのなかの1つのバージョンが3年ごとに長期サポート(LTS:Long Term Support)版に指定されてきました。

現在のLTS版は2021年9月にリリースされたJava 17です。企業向けのシステム開発などで一定期間は安定したJavaのバージョンを使いたい場合にはLTS版のJava 17を利用するのが適切でしょう。

ただし、オラクルは2021年9月にLTS版の提供サイクルをそれまでの3年ごとから2年ごとに変更する提案を発表しました。

参考:Javaの長期サポート(LTS)版、次回は2年後に登場の見通し。オラクルがLTSのサイクルを3年から2年に変更提案

そして前回のJava 19の登場時点でこの方針に変更がないかどうかを米オラクルに確認したところ、この2年ごとのLTS版提供は予定通り行われることを確認しています。

そのため、半年後に登場予定のJava 21が次のLTS版になる見通しです。

Javaを前進させるプロジェクト群

Javaの開発においては、プログラマの開発生産性を高める目的で言語を進化させる「Project Amber」、より短時間で起動し素早くピーク性能へ到達するための改善を行う「Project Leyden」、シンプルな並列処理を大規模かつ軽量に実現するための「Project Loom」、Javaの外側のソフトウェアとのI/Oを改善する「Project Panama」、Javaの型システムを改善することでビッグデータにおける性能向上などを目指す「Project Valhalla」など、複数のプロジェクトが進められています。

figオラクルの資料から抜粋

今回リリースされたJava 20でも、これらのプロジェクトの成果が組み入れられています。JDK 20のページから新機能を紹介しましょう。

Project Amber
「JEP 432: Record Patterns(2nd Preview)」は、instanceofやswitchによるパターンマッチングが拡張され、Recordクラスを分解して値を抽出できるようにします。

「JEP 433: Pattern Matching for Switch(4th Preview)」は、文字通りSwitchのなかでパターンマッチングを使えるようにするもの。

Project Loom
「JEP 436: Virtual Threads(2nd Preview)」は、Java 19から組み入れられた注目の機能です。

これまでJavaのスレッド機能は、JavaVMが実行されているOSが提供するスレッドと1対1対応していましたが、多数のスレッドが作成されるとOS上で多数のコンテキストスイッチングやメモリ消費が発生することになり、それが処理のオーバーヘッドになることがありました。

Virtual ThreadはOSによるスレッド生成に依存せず、JavaVMの中でJavaのスレッドを作成し管理できるようにしたものです。大幅に軽量なスレッド作成と管理が可能になり、スレッドを用いた多数の並行処理がさらに高速でスケーラブルなものになっています。

「JEP 429: Scoped Values(Incubator)」では、 イミュータブルデータをスレッド内およびスレッド間で共有できるようになります。特に大量のVirtual Threadsを使用する場合、スレッドローカル変数よりも理解しやすく、堅牢性や性能も向上します。

「JEP 437: Structured Concurrency(2nd Incubator)」は、異なるスレッドで実行される複数のタスクを1つの作業単位として扱うことでエラーハンドリングやキャンセル処理などを簡素化でき、プログラムの信頼性や可観測性を強化できます。

Project Panama
「JEP 434: Foreign Function & Memory API(2nd Preview)」は、 JavaプログラムがJavaランタイム外のコードやデータに対してJNI(Java Native Interface)を必要とせずに効率的な呼び出しやメモリへのセキュアナアクセスを実現します。

「JEP 438: Vector API(5th Incubator)」は、ベクトル計算をCPUアーキテクチャのベクトル命令にコンパイルでき、同等のスカラー計算と比較して性能向上を実現します。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
日本とアメリカの開発スタイルの違い、最新のクラウドネイティブアーキテクチャ、実際に成果が出た事例を学ぶ[PR]
Microsoft Azure
2022-07-20 20:34
セキュリティで問題なのはテクノロジーではなく教育–ソフォス調査
IT関連
2022-04-30 15:43
AWSジャパン、「Amazon Bedrock」を東京リージョンで提供–先行利用した2社の事例を紹介
IT関連
2023-10-05 17:39
物議を醸すWhatsAppのポリシー変更、今度はEUの消費者法違反の疑いで
ネットサービス
2021-07-14 12:53
旅行体験アプリHeadoutがオミクロン株流行を乗り切り約34億円の追加資金を獲得
IT関連
2022-02-04 06:06
止まらないWebサイトを構築せよ。名古屋市からの要請にWordPressとDocker Swarm、そしてTiDB Serverlessの組み合わせで対応[PR]
PR
2024-01-22 04:09
スマート畜産の普及を目指すNTT東日本の通信環境実証実験にAI家畜管理サービスPIGIが協力、IEEE802.11ah活用
IT関連
2022-02-16 15:42
マイクロソフト、エッジデバイスへのAI導入を支援する「Azure Percept」発表
IT関連
2021-03-03 12:38
TikTokで黒人クリエーターたちがストライキ、クリエイティブの搾取を訴える
ネットサービス
2021-06-29 21:55
神戸市と500 Startupsが2021年も「500 KOBE ACCELERATOR」をオンライン開催
その他
2021-07-10 23:41
DNP、VMware環境で運用する基幹システムを「Oracle Cloud」に移行
IT関連
2022-05-13 14:50
オリンピック放送の厳しいルール ネット番組では競技映像が使えない?
IT関連
2021-08-04 04:47
Twitter、過去最高の売上高 「iOS 14」のトラッキング申請の影響は「それほど大きくない」
企業・業界動向
2021-02-11 01:46
[速報]オラクル、OpenJDKコミュニティにGraalVM CEのJava関連コードを寄贈すると発表。JavaOne 2022
GraalVM
2022-10-19 05:19