1程式與執行緒以及Linux中fork()的運用
讀《用TCP/IP進行網際互連——客戶-伺服器程式設計與應用(Linux/POSIX套接字版)》
第1章 引言和概述
TELNET的在LINUX和WIN7中的使用以及在WIN7中的啟用方法
http://blog.csdn.net/qq_27607539/article/details/73715679
第2章 客戶-伺服器模型與軟體設計
這章還為參透,之後看看能不能有所感悟吧。
第3章 客戶-伺服器軟體中的併發處理
併發執行。
程式與執行緒的變數共享問題。
當多個執行緒併發地執行同一段程式碼時,對這段程式碼所涉及的變數,每個執行緒都應各有一份獨立的副本。
每個程式擁有全域性變數的副本;如果多個執行緒在同一個程式內執行,則它們各自擁有區域性變數的副本,但都可共享程式的全域性變數副本。
當多個執行緒併發地執行一段程式碼時,每個執行緒擁有自己的棧。
LINUX下的多程式程式設計。
fork()函式用來將執行著的程式分成2個幾乎完全一樣的程式,每個程式都啟動一個從程式碼的同一位置開始執行的執行緒。
fork呼叫新建立的程式都是單執行緒的。
返回值: 若成功呼叫一次則返回兩個值,子程式返回0,父程式返回子程式標記;否則,出錯返回-1。
包含標頭檔案
#include<unistd.h>
#include<sys/types.h>
程式設計示例
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(void){
int pid;
pid=fork();
if(pid==-1) return -1;
if(pid==0){
//子程式
printf("這裡是子程式!\n");
}else{
//父程式
printf("這裡是父程式!\n");
printf("子程式的PID=%d\n",pid);
return 0;
}
}
LINUX下的C編譯方法參考
http://blog.csdn.net/qq_27607539/article/details/73721946
上述程式碼編譯執行結果如下:
程式之間是併發執行的,子程式的輸出不一定在前。
相關文章
- Linux中程式與執行緒的概念以及區別Linux執行緒
- Linux程式與執行緒的區別Linux執行緒
- Linux執行緒與程式的區別Linux執行緒
- 關於linux多執行緒fork的理解和學習Linux執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- Linux中程式與程式、執行緒的區別!Linux執行緒
- 簡述Linux 中程式與執行緒Linux執行緒
- 執行緒、執行緒與程式、ULT與KLT執行緒
- 轉載_Linux程式與執行緒的區別Linux執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 執行緒中斷以及執行緒中斷引發的那些問題執行緒
- Linux下程式與執行緒概念淺析Linux執行緒
- 執行緒和程式基礎以及多執行緒的基本使用(iOS)執行緒iOS
- 多執行緒在打包工具中的運用執行緒
- Java中的執行緒-1Java執行緒
- 程式與執行緒執行緒
- 執行緒與程式執行緒
- 【java】【多執行緒】程式、執行緒的基本概念(1)Java執行緒
- java多執行緒8:阻塞佇列與Fork/Join框架Java執行緒佇列框架
- Android程式框架:執行緒與執行緒池Android框架執行緒
- PyQt應用程式中的多執行緒:使用Qt還是Python執行緒?QT執行緒Python
- Java多執行緒學習(1)建立執行緒與執行緒的生命週期Java執行緒
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- Linux應用程式獲取執行緒棧的資訊Linux執行緒
- java中執行緒池的生命週期與執行緒中斷Java執行緒
- 程式與執行緒的產生執行緒
- PHP 的多程式與執行緒PHP執行緒
- 程式與執行緒的區別執行緒
- 程式間通訊(linux程式與執行緒學習筆記)Linux執行緒筆記
- Python語法進階(1)- 程式與執行緒程式設計Python執行緒程式設計
- 協程、執行緒與程式執行緒
- 程式與執行緒區別執行緒
- 9.1 運用API建立多執行緒API執行緒
- Linux fork程式的用法Linux
- 執行緒與多執行緒執行緒
- Qt中的多執行緒與執行緒池淺析+例項QT執行緒
- 多執行緒高併發程式設計(8) -- Fork/Join原始碼分析執行緒程式設計原始碼
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- Python 中執行緒和程式Python執行緒