スレッドプールのタスク調整と共有データの取り扱い

スレッド間の通信と同期 1. スレッドAが完了した後にスレッドBを実行する /** * Aが完了した後にBを実行 */ @Test public void bWaitA() { Thread A = new Thread(() -> { System.out.println("A: 作業開始!!"); System.out.println("A: 作業終了!!"); }); Thread B = new Thread(() ...

6月19日 22:15 投稿

Rustにおける並行処理入門とシンプルなスレッド例

Rustでは、所有権システムと型チェックにより、多くの並行処理に関するバグがコンパイル時に検出される。この特性は「フェアレス・コンカレンシー(fearless concurrency)」と呼ばれ、開発段階で問題を修正できる点が大きな利点となる。 並行(Concurrent)と並列(Parallel)の違い 並行とは複数のタスクが独立して進行することを指し、必ずしも同時に実行されるわけで ...

6月18日 21:37 投稿

Javaのスレッド制御におけるsleepとwaitの挙動の違い

Thread.sleepによる一時停止 Thread.sleep()は、現在実行中のスレッドを指定された時間だけ一時停止させる静的メソッドです。このメソッドの大きな特徴は、休眠中であってもオブジェクトのロック(モニター)を解放しない点にあります。そのため、同期的な処理の中で一時的に処理を遅延させたい場合や、単純なタイミング調整に利用されるのが一般的です。 以下の例では、別 ...

6月13日 21:23 投稿

Linuxカーネルにおけるプロセス管理の詳細分析

プロセス、軽量プロセス、およびスレッドの概念 プロセスは、プログラムが実行される際のインスタンスであり、カーネルの観点ではCPU時間やメモリなどのシステムリソースを割り当てるための基本単位です。新しいプロセスが生成されると、そのアドレス空間は親プロセスのコピーとして作成され、次の命令から実行を開始します。 現代のUnix系システムでは、マルチスレッドア ...

6月5日 21:28 投稿

Pythonのデコレータの基本と応用例

Pythonでは、デコレータは関数やクラスをラップすることで、その機能を拡張するための設計パターンです。元の関数やクラスのコードを変更することなく、新たな機能を追加できます。以下は、Pythonのデコレータパターンを用いた基本的な例です。 import time # 単純なログ出力デコレータを定義 def logging_decorator(func): def inner_function(*args, **kwargs): ...

5月31日 11:52 投稿

iOSにおけるスレッド技術の基本

一、スレッド使用上の注意点(必須) 同時に多数のスレッドを開かない(1~3スレッド程度、5を超えないこと) スレッドの概念 メインスレッド:UIスレッド。UIの表示・更新、UIコントロールのイベント処理を行う サブスレッド:バックグラウンドスレッド、非同期スレッド 時間のかかる操作はメインスレッドで実行せず、サブスレッドで実行する 二、NSThread(必須) ...

5月25日 04:57 投稿

OSにおけるスレッドの動作原理と並行制御の基礎

スレッドは、単一のプロセス空間内で独立して実行フローを保持する実行コンテキストです。OSのスケジューラが直接対象とする最小の単位であり、親プロセスのヒープやデータセグメント、ファイルディスクリプタテーブルなどを共有しつつ、独自のスタックやレジスタ状態を保持します。これにより、コンテキストスイッチのオーバーヘッドを抑制しながら並列処理を実現します。 ...

5月23日 20:08 投稿

Python でのシングルトン モードの実現方法

シングルトン モードとは、ソフトウェア設計の手法で、特定のクラスが何度インスタンス化されても、常に同じメモリ アドレスを指すようにするものです。この手法により、1つのクラスから 1つのオブジェクトのみが生成されます。 1. モジュールのインポートを活用した方法 基本的な仕組み:Python モジュールをインポートすると、そのモジュールのコードが一度だけ実行され ...

5月22日 00:15 投稿

JavaスレッドのCPU時間スライス実装方法

JavaスレッドのCPU時間スライス実装 Java開発者として、JavaスレッドのCPU時間スライスを実装する方法について解説します。本記事では、プロセスの各ステップを表形式で示し、各ステップに対応するコード例と説明を提供します。 実装手順 ステップ 操作内容 1 Runnableインターフェースを実装したスレッドクラスの作成 2 実行するロジックの記述 3 スレッドオブ ...

5月14日 17:09 投稿