1. 程式人生 > >linux下的C語言開發(執行緒等待)

linux下的C語言開發(執行緒等待)

和多程序一樣,多執行緒也有自己的等待函式。這個等待函式就是pthread_join函式。那麼這個函式有什麼用呢?我們其實可以用它來等待執行緒執行結束。

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>

void func(void* args)
{
    sleep(2);
    printf("this is func!\n");
}

int main()
{
    pthread_t pid;

    if(pthread_create(&pid, NULL, func, NULL))
    {
        return -1;
    }

    pthread_join(pid, NULL);
    printf("this is end of main!\n");

    return 0;
}

編寫wait.c檔案結束之後,我們就可以開始編譯了。首先你需要輸入gcc wait.c -o wait -lpthread,編譯之後你就可以看到wait可執行檔案,輸入./wait即可。

[[email protected] thread]$ ./thread
this is func!
this is end of main!


相關推薦

linuxC語言開發(執行等待)

和多程序一樣,多執行緒也有自己的等待函式。這個等待函式就是pthread_join函式。那麼這個函式有什麼用呢?我們其實可以用它來等待執行緒執行結束。 #include <stdio.h> #include <pthread.h> #include

Linuxc語言執行程式設計

執行緒的資料處理   和程序相比,執行緒的最大優點之一是資料的共享性,各個程序共享父程序處沿襲的資料段,可以方便的獲得、修改資料。但這也給多執行緒程式設計帶來了許多問題。我們必須當心有多個不同的程序訪問相同的變數。許多函式是不可重入的,即同時不能執行一個函式的多個拷貝(除非使用不同的資料段)。在函式中宣告的靜

linuxC語言執行(二)執行的私有資料

二. 建立和登出 Posix定義了兩個API分別用來建立和登出TSD: int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *)); 該函式從TSD池中分配一項,將其值賦給key供以後訪問使用。如果destr_fu

linuxC語言執行(一)執行的建立與取消

#include <pthread.h> int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void

Linux學習筆記 二 LinuxC語言開發工具

2.1常用編輯工具 1.vim編輯器 VIM編輯器基本山可分為三種模式分別是命令模式,插入模式和底行模式 下面是VIM模式轉換圖。 (1)在.vimrc檔案中設定幾個常用的底行命令 設定縮排命令    :set smartindent 

LinuxC語言開發(已知程序名得到其PID號)

在我的另外一個篇部落格【Linux下C語言開發(訊號signal處理機制)】中需要測試系統呼叫kill來向指定進行號傳送指定的訊號,在同一個測試檔案很容易獲取當前程序的pid,只需呼叫getpid()函式就可獲取當前程序的pid。但是,如果要獲取非當前程序的pid,那應該如何

LinuxC語言開發(開篇hello world.)

從大學選擇走嵌入式方向到現在從事嵌入式驅動工程師職位已一年多了,要能勝任嵌入式驅動工程師(當然,這裡我所說的嵌入式驅動工程師並非指驅動開發,往往只需要根據自己的系統移植驅動以及編寫簡單的驅動)確實需要不少知識,如:開發環境搭建、看懂簡單硬體電路原理圖、瞭解常用硬體工作原理、

linuxC語言開發(程序等待

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    所謂程序等待,其實很簡單。前面我們說過可以用fork建立子程序,那麼這裡我們就可以使用wait函式讓父程序等待子程序執行結束後才開始執行。注意,為了證明父程序確實是等

LinuxC語言生成可執行文件的過程

代碼 內容 gcc 創建 inux 匯編代碼 機器 都是 inf 在當前目錄下創建一個C源文件並打開: touch test.c gedit test.c直接編譯: gcc test.c -o test 分步驟編譯: 1) 預處理 gcc -E test.c -o

Linux C程式設計之一:Linuxc語言開發環境

—恢復內容開始— 今天開始根據Linux C程式設計相關視訊的學習所做的筆記,希望能一直堅持下去。。。 1、開發環境的構成 編輯器:VI; 編譯器:選擇GNU C/C++編譯器gcc; 偵錯程式:應用廣泛的gdb; 函式庫:glibc ; 系統標頭檔案:glibc_header; 2、在安裝L

LinuxC語言執行MySQL語句

執行SQL語句的增、刪、改、查的主要API函式為: int mysql_query(MYSQL *connection, const char *query); 函式接收引數連線控制代碼和字串形式的有效SQL語句(沒有結束的分號,這與mysql工具不同)。如果

LinuxC語言實現C/S模式程式設計(附原始碼,執行截圖)

由標題可知,這篇部落格主要講如何用C語言實現一個C/S模式的程式。 主要功能:時間回送。 客戶機發出請求,伺服器響應時間,並返回伺服器時間,與客戶機進行同步。 廢話不多說,下面直接貼出原始碼。 程式碼如下: #include <stdio.h> #include

C語言執行例項之pthread的應用(在windows的應用(win7))

Pthread是由POSIX提出的一套通用的執行緒庫,在linux平臺下,它被廣泛的支援,而windows平臺下,卻並不被支援,而pthreads-w32為我們提供瞭解決方案,本文我們準備在我們的windows平臺下進行pthread-w32的安裝,在網路上有類

區域網ip掃描器c語言執行 linux

原理: 採用多執行緒的方式實現ping命令,然後將ping命令的結果存放在檔案中,掃描檔案中成功和失敗的關鍵字,然後確定ping命令是否成功,然後得出結果。列印在控制檯上。 #include <stdio.h> #include <string.h>

Linux C語言執行庫Pthread中條件變數的的正確用法逐步詳解

(本文的讀者定位是瞭解Pthread常用多執行緒API和Pthread互斥鎖,但是對條件變數完全不知道或者不完全瞭解的人群。如果您對這些都沒什麼概念,可能需要先了解一些基礎知識) Pthread庫的條件變數機制的主要API有三個: int pthread_cond_w

LinuxC語言的幾道經典面試題

ref 使用 linu 學習資源 chan ima 什麽 img c語言 本篇文章整理了幾道Linux下C語言的經典面試題,相信對大家更好的理解Linux下的C語言會有很大的幫助,歡迎大家探討指正。 1、如果在Linux下使用GCC編譯器執行下列程序,輸出結果是什麽? 答

LINUXC語言編程調用其他函數、鏈接頭文件以及庫文件

blog head.s 鏈接 color pre () 如果 編譯 聲明 LINUX下C語言編程經常需要鏈接其他函數,而其他函數一般都放在另外.c文件中,或者打包放在一個庫文件裏面,我需要在main函數中調用這些函數,主要有如下幾種方法: 1.當需要調用函數的個數比較少時,

linuxc語言獲取當前時間

keyword spa pre urn markdown view 技術分享 時間 tle 和時間有關的函數定義在頭文件”time.h”中 常用函數: time_t time(time_t *t); 函數說明:此函數會返回從公元 1970 年1 月1 日的UTC

LinuxC語言的socket網絡編程

網絡編程 服務器 enter 編程 scanf 路由 client p s drl Server.c 1 #include <sys/types.h> 2 #include <sys/socket.h> 3 #include <n

LinuxC語言的文件操作

poi 需要 inux 文件 name fcn flag exc 文件描述符 代碼: 1 #include <stdio.h> 2 #include <string.h> 3 #include <fcntl.h> 4 /****