Goでプロセス・goroutine・メモリを覗いてみた
2025年8月9日概要 Goを使って、プロセスのアドレス空間・goroutineの動作・スタックとヒープを軽く覗いてみる。 子プロセスとアドレス空間の違いを確認する Goでは標準的にos/execパッケージを使って新しいプロセスを起動する。 os/execは内部的にUnix系OSではfork()+exec()相当の処理を行い、新しいプログラム(この例では自分自身)を実行する。 親子プロセスで同じ変数のアドレスを表...
Goでスタックとキューをそれぞれ実装してみた。 スライスを使ったパターンと連結リストを使ったパターンをそれぞれ実装している。 個人的にはスライスを使ったパターンの方が実装は楽かなと思う。 スタックのpush、pop、キューのenqueue、dequeueの時間計算量はそれぞれO(1)で実装できるが、一部サボってO(N)になってしまっているものがある。 スタック ソースコード:stack 連結リスト...
概要アルゴリズム図鑑を参考に、アルゴリズムとデータ構造を学ぶ。 実装はgithub - bmf-san/road-to-algorithm-masterにも置いてある。 スタック 常に最新のデータからしかアクセスできないようにデータを一列に並べた構造 LIFO(Last In First Out) 後入れ先出し 常に最新のデータへアクセスしたいときに便利な構造 データの追加をPush、削除...