Rustの非同期・同期処理とスレッドモデルの仕組み
Tokioなどの非同期ランタイムを用いた開発では、main関数に#[tokio::main]マクロを付与して記述するケースが一般的です。一見すると非同期関数として動作するように見えますが、コンパイル時に展開される実際のコード構造は同期ベースです。このマクロは構文糖衣であり、内部的には以下のような同期関数に展開されます。
fn main() {
let rt = tokio::runtime::Builder ...
7月17日 21:12 投稿
Linuxプロセス管理とタスクスケジューリングの基本
プロセス管理:ps、top
タスクスケジューリング:crontab
プロセス管理の概念
プロセスとは、独自の仮想アドレス空間内で実行される独立したプログラムです。
プログラムとプロセスの違い:プログラムは静的なコマンドの集合であり、システムのリソースを消費しません。一方、プロセスは常に変化する動的なもので、システムのリソースを使用します。1つのプログラムから複 ...
7月13日 00:48 投稿
nopCommerceスケジュールタスクの構造解析
基本構成
nopCommerceの定期タスク機能は、以下の主要コンポーネントで構成されています:
IScheduleTaskService(タスク情報取得インターフェース)
ITask(タスク実装インターフェース)
Task(タスク実行クラス)
TaskManager(タスク管理クラス)
TaskThread(スレッド管理クラス)
インターフェース設計
ITaskインターフェースはすべてのタスク処理クラスが実装す ...
6月18日 19:25 投稿
Spring BootとQuartzスケジューラの統合ガイド
Javaにおけるタスクスケジューリング手法の比較
Javaで定期的な処理を実装する方法は複数存在します。それぞれの特徴を整理します。
Timer: シンプルで導入が容易ですが、単一スレッドでタスクを直列実行するため、1つのタスクが遅延や例外を起こすと後続タスクに影響します。複雑なスケジューリングには不向きです。
ScheduledExecutor: Java 5で導入されたスレッドプー ...
6月2日 17:48 投稿
STM32におけるFreeRTOSタスク生成とスケジューリング動作の検証
FreeRTOSにおけるタスクスケジューリングの基礎
FreeRTOSでは、異なる優先度を持つタスク間では「優先度スケジューリング」が、同じ優先度を持つタスク間では「ラウンドロビン(タイムスライス)スケジューリング」が採用されます。ここでは、CMSIS-RTOS APIを用いたタスクの生成から、スケジューリングの挙動、およびタスクの待機状態への遷移までを実験を通じて確認しま ...
6月1日 21:03 投稿