InfoQ ホームページ Concurrency に関するすべてのコンテンツ
-
Micronaut 4.0.0はJava仮想スレッド、GraalVMのサポートとHTTP/3の実験的機能を搭載
Micronaut財団はこのほど、Micronautフレームワーク4.0.0の一般提供(GA)リリースを発表した。このメジャーリリースは、人気のあるJVMベースのフレームワークに多数のアップデートと改善をもたらし、そのパフォーマンス、モジュール性、他の技術との互換性を強化する。
-
JDK 21の構造化並行処理:並行プログラミングの飛躍的な進歩
JEP 453「構造化同時実行(プレビュー)」は、JDK 21のTargetedステータスから統合された。以前はインキュベートAPIであったが、この最初のプレビューでは、過去2回のインキュベートからのフィードバックに対応した機能強化が盛り込まれている。JEP 428「構造化同時実行(インキュベーター」(JDK 19で提供)、JEP 437「構造化同時実行(セカンドインキュベーター)」(JDK 20で提供)。現在の提案における唯一の重要な変更は、StructuredTaskScope::fork(...)メソッドがFutureではなくSubtaskを返すということである。これはプレビュー機能である。
-
QCon New York 2023 初日を振り返る
2023年6月13日、ニューヨークのブルックリンにあるNew York Marriott at the Brooklyn Bridgeで、第9回QCon New Yorkカンファレンスの1日目が開催された。この3日間のイベントは、エンタープライズ開発コミュニティにおける偏りのないコンテンツと情報に焦点を当てたソフトウェアメディア会社であり、InfoQとQConのクリエーターであるC4Mediaが主催するものである。Radia Perlman氏による基調講演と、以下の4つのトラックからのプレゼンテーションが行われた。
-
JEP 428: javaマルチスレッドプログラミングを容易にする構造化並行性
JEP 428 "Structured Concurrency (Incubator)"が、JDK 19のProposed to TargetステータスからTargetedステータスに昇格した。Project Loomの傘下にあるこのJEPは、異なるスレッド上で動作する複数のタスクをアトミックなオペレーションとして扱うライブラリの導入によって、マルチスレッドプログラミングを簡略にすることを提案するものだ。エラー処理の容易化、信頼性の向上、可観測性の改善が期待できる。
-
JEP 425: 仮想スレッドによるスループット向上
JEP 425 "Virtual Threads (Preview)"が、JDK 19対象のProposed to TargetからTargetedに昇格した。Project Loomの傘下にあるこのJEPでは、仮想スレッドを導入する。これによって実現される軽量スレッドは、スループットの高いJavaプラットフォーム並列アプリケーションの記述、維持、監視に必要な労力を大幅に軽減するもので、現時点ではプレビュー機能である。
-
大規模コードベースを効率的に処理するInferのAndroid用新デッドロック検出ツール
ロンドン大学カレッジとFacebookの研究者らが共同研究により、AndroidのJavaコード用のデッドロック検出ツール(deadlock detector)を新たに開発し、オープンソースの静的解析ツールであるInferの一部として公開した。この新しいアナライザは、CIパイプラインに統合するために特別に設計されたインクリメンタルなアプローチにより、大規模なコードベースを効率的に処理することができる。
-
OCaml 5、マルチコアサポートを導入へ
OCamlチームが言語ランタイムのマルチコアサポート追加に関する詳細なロードマップを公開した。OCaml 5に向けた次期マイナーリリースでは、マルチコアランタイムと標準ランタイムの統合に重点が置かれている。
-
.NET 6: スレッドの改善
非同期や並列プログラミングの複雑さを抽象化するために多数のライブラリが存在するが、それでも開発者は、時々、下位のスレッド処理ロジックへの落とし込みが必要になる。.NET6シリーズのAPIの変更に続いて、マルチスレッドのいくつかの新しい効果的な方法を見ていこう。
-
ZippyDB:Facebookの強力な一貫性のあるKey-Valueストアのアーキテクチャ
Facebook Engineering recently published how it built its general-purpose key-value store, known as ZippyDB. ZippyDB is Facebook's biggest key-value store, which has been in production for more than six years. It offers flexibility to applications in terms of tunable durability, consistency, availability, and latency guarantees.
-
async/awaitとアクタをサポートするSwift 5.5
WWDC21で、AppleはSwift 5.5を発表した。現在はベータ版が使用可能だ。新機能の中で、最も待ち望まれていたもののひとつが、async/awaitとアクタを使用した並行処理サポートの改善だ。
-
GitHubがRedisを使用してレートリミットをスケールアップ
GitHubのエンジニアであるRobert Mosolgo氏は昨日、Redisのシャーディングとレプリケーションを使用したレートリミッタを使ってGitHub APIをスケールアップした方法について、詳細に説明した記事を投稿した。GitHubは以前のMemcachedベースのレートリミッタから、Redisベースのものに移行した。Mosolgo氏によると、新しい実装では信頼性の向上、クライアントの問題解決、GitHubのサポート負荷の低減が実現されている。
-
Rustの非同期ランタイムであるTokioが1.0に到達
Tokioは、Rustで信頼性が高く高速な非同期プログラムを作成するためのビルディングブロックを提供することを目指している。最近発表されたTokio 1.0は、TCP、UDP、タイマー、マルチスレッド、ワークスティーリングスケジューラなどをサポートしている。
-
データ競合のない並列言語を目指すSwift
Swiftチームは、Swiftの並列性サポートの改善に向けたロードマップを公開した。最初のフェーズでasync構文とアクタを進め、第2フェーズでデータ競合(data races)とデッドロックを排除する予定である。
-
堅牢なテスト戦略により自信を持ってDropbox Syncをリライト
過去数年間、Dropboxのエンジニアはクライアント側の同期エンジンをゼロから書き直してきた。DropboxのエンジニアであるIsaac Goldberg氏は、明確なテスト戦略を定義していなければクイックなリリースサイクルで新しいエンジンを構築して出荷するのは、不可能だったと述べている。
-
Swift Atomicsにより、Swiftでファーストクラスのatomic操作が可能に
Swift Atomicsは、システムプログラマーがSwiftで直接、同期構造を記述できるようにすることを目的としている。