1. ホーム
  2. c

[解決済み] フォークとスレッドの違いは何ですか?

2023-01-05 20:11:40

質問

フォークとスレッドの違いを説明できる人はいますか?

どのように解決するのですか?

フォークでは、現在のプロセスのコピーであるまったく新しいプロセスが、同じコード セグメントで提供されます。メモリ イメージが変更されると (通常、これは 2 つのプロセスの異なる動作による)、メモリ イメージの分離 (Copy On Write) が行われますが、実行可能コードは同じままです。タスクは、ある種のタスクが使用しない限り、メモリを共有しません。 プロセス間通信 (IPC) プリミティブを使用しない限り、タスクはメモリを共有しません。

1つのプロセスは複数のスレッドを持つことができ、それぞれがプロセスの同じコンテキスト内で並列に実行されます。メモリやその他のリソースはスレッド間で共有されるため、共有データには何らかのプリミティブや同期オブジェクト(例えば ミュートス , 条件変数 セマフォ など) を使って、データの破損を防ぐことができます。