1.プロセス:PS、GETPID()、フォーク()、>
GETPIDライブラリ関数番号取得処理は、
マルチプロセス
、最初の行の下には、親プロセスである第二のラインサブプロセス
同時以下の概念、プロセス・アプリケーション
内のサーバ、同時にアプリケーション
次サーバー
上の分析のために、次のコード
2.信号:信号(EXIT)。
どのようにバックグラウンドで実行中のプログラムを取得するため
のプロセスのための信号を
、本質的にマクロ信号名として
上記の名前の子プロセスの終了が親に信号を送り、SIGCHLD
親プロセスがシグナルを処理しないと、子プロセスがゾンビプロセスになることならば、。
11の信号値は、それらの不正使用またはヌルポインタアドレスの無差別使用であり、さらに同じ信号値9は、コードが無視できない無視加えます。
デフォルト値は、一般的に、カスタム関数EXIT機能としてはありませんように、第3の回復信号処理方法
グローバル変数がアクセスをtcpserverののEXIT機能を設定されているため機能次のカスタムEXIT機能は、それとはソケットを閉じている
Ctrl + Cと殺すように/すべてを殺しますexitコマンドは、プロセスをシャットダウンする機能を呼び出すことができますが、プロセスを強制終了していない、と脱退の通告が呼ばれる
次はC言語の関数を殺さない、オペレーティングシステムのkillコマンド信号です。他のユーザーがプロセスを殺すことはできません殺す
殺す機能を、成功すると0の値を返します。-1失敗。この機能は、[1]以下のargv、監視プロセスに使用される、すなわち、PID番号、ARGV [2]第二のパラメータは信号値であるを殺す最初のパラメータであります
前記プロセス間通信:たshmget()
プロセスデータ空間は、互いに独立して、彼らは通信できません。しかし、いくつかの場合において交換データシステム、または機能を完了するために相互にプロセス間通信を必要と
通信シナリオ以下のプロセスで
同様のソケットキューが、唯一の機械でメッセージ。全般と組み合わせるメモリとセマフォ共有
5サンプルプログラムを:操作は共有メモリの動作に相当し、ポインタが
書かれている文字列である「このプログラムのプロセス...」、Redisのは、自分自身の共有メモリを記述する必要はありません
4.マルチスレッド:のpthread_create()
がpthread_t(データ型)の最初のパラメータ:typedefの符号なしlong int型がpthread_t、unsigned long型
の新しい顧客は、main関数の記述方法を確認するためにスレッドを以下のプロセスではなく、会社の端にスレッドを開始、pthread_createのは、C言語のライブラリ関数があり
ますthread_start変更pth_main(main関数スレッド)
それが上記の形で書かれているように、
サーバーに以下
ソケット以下プリント
として(void*)ii = void*arg
単一のマルチスレッドプロセス:キルのみプロセス(キルスレッドが存在しない)、殺すスレッドのプロセスが自動的に終了する
複数のプロセス。親が子プロセス再利用しないで、殺された
複数のスレッドが割り当てスレッドの切り替えを完了しませんが、値は、その値のない元の値が削除されます
5.スレッド同期:pthread_mutex_t
pthread_mutex_t構造。データ入力:ランディングページ。データショー:javaのは、Microsoft .NET、C#。共有リソース:全局变量
、 全局对象
(データベース接続詞、ソケット、ログファイルオブジェクト)
+への道を開くために、ログファイルには、追加コンテンツの最後まで続けるため、
画面上に書かれた内容が、ログファイルが書き込まれるbook242としてではない
トップキルプロセスkillallをbook242後ビュー.logファイルを表示することができ、以下の変更が問題解決するために、オプションのバッファ書き込みバッファいる
ログファイルで複数のスレッドの共有リソースを、共有リソースの問題(ファイル内容の書き込み障害)、ロックを定義するためのログファイル、ロックかもしれ
上記操作と同じログを書き込む前に、表面は、以下の変更が1秒スリープ効果を見ることができない
30て送信メッセージはそれほど(20 * 30終了する、1秒でフラッシュし、ロックされていないクライアント20 )■