Rustのunsafeコード:unsafe関数、トレイト、外部関数インターフェース(FFI)

本稿では、unsafeコード、特にunsafe関数とunsafeトレイト、そして外部関数インターフェース(FFI)について解説する。まずunsafeブロックの基本を確認し、その後具体例を通じて理解を深める。 unsafeブロックの基本 unsafeブロックは以下のように記述する: unsafe { // 安全でない操作 } 関数内や式の中でunsafeブロックを使用できる。例: println!("r1: {}, r2: { ...

8月6日 16:25 投稿

Java における CAS の詳細解説

CAS(Compare-And-Swap)の概要 CAS は、メモリ上の値が期待値と一致するかどうかを比較し、一致した場合に新しい値に更新するという原子操作です。CAS はロックを使わないので、高負荷環境でのパフォーマンスが優れています。 Java における CAS の実装 Java では、CAS 操作は主に `Unsafe` クラスを介して実装されます。このクラスはハードウェアレベルの原子 ...

7月18日 16:20 投稿

Rustにおける安全でないコードを用いた静的変数へのアクセス

静的変数の特性と安全でないアクセスの必要性 Rustでは、可変な静的変数へのアクセスは安全でないコードブロック内で行う必要があります。これは、静的変数がグローバルにアクセス可能であり、マルチスレッド環境での競合状態を引き起こす可能性があるためです。 定数と静的変数の違い 静的変数は固定のメモリアドレスを持ち、常に同じアドレスを通じてアクセスされます ...

6月2日 23:12 投稿