linux下c 多執行緒測試程式Demo

2021-09-25 13:29:14 字數 666 閱讀 8792

一、編寫**如下,取名為hello.c或者hello.cpp均可

#include #include using namespace std;

void show(int i)

{ cout <

g++ -c -g hello.c   (-c指conplier,-p指debug模式),此步之後將生成hello.o程式

g++ hello.o -o hello.exe -lpthread  (-o hello.exe指的是-out為hello.exe的檔案,由於pthread不是linux下的預設的庫,也就是在鏈                  接的時候,無法找到phread庫中哥函式的入口位址,因此要加-lpthread否則鏈結失敗)

執行./hello.exe檢視結果

三、結果分析

注意看,有的時候同樣的輸出竟然 會出現兩次,有的時候什麼也沒有輸出

若將**中的detach()改為join(),則程式結果很有規律,如下圖:

Linux下多執行緒程式除錯方法

1 最直接的方法就是在源程式插入printf語句來列印出一些有用的變數。這種方法的優點是不用借助其他工具就可以對程式的執行進行觀察,缺點是插入語句的位置 粒度等都需要除錯者自己去權衡,如果插入過多的列印語句,則頻繁的io操作會使程式執行變慢,執行緒行為改變,有些bug甚至不會再出現。至於需要在什麼地...

Linux下C程式使用多執行緒方式處理例項

下面我們先來編譯 執行一下 引文 falcon falcon program c code ftp gcc lpthread o thread example thread example.c falcon falcon program c code ftp thread example 我是主函式...

Linux下C語言多執行緒例項

建立兩個執行緒訪問互斥資料,對其加1輸出。這是乙個多執行緒最常見的例子 include include include include define max 10 pthread t thread 2 pthread mutex t mut int number 0,i void thread1 p...