最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux創(chuàng)建線程之pthread_create的具體使用

 更新時(shí)間:2020年05月22日 09:45:53   作者:amanlikethis  
這篇文章主要介紹了linux創(chuàng)建線程之pthread_create的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

pthread_create函數(shù)

函數(shù)簡介

  pthread_create是UNIX環(huán)境創(chuàng)建線程函數(shù)

頭文件

  #include<pthread.h>

函數(shù)聲明

  int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);

返回值

  若成功則返回0,否則返回出錯(cuò)編號(hào)

參數(shù)

  第一個(gè)參數(shù)為指向線程標(biāo)識(shí)符的指針。

  第二個(gè)參數(shù)用來設(shè)置線程屬性。

  第三個(gè)參數(shù)是線程運(yùn)行函數(shù)的地址。

  最后一個(gè)參數(shù)是運(yùn)行函數(shù)的參數(shù)。

注意

  在編譯時(shí)注意加上-lpthread參數(shù),以調(diào)用靜態(tài)鏈接庫。因?yàn)閜thread并非Linux系統(tǒng)的默認(rèn)庫。

pthread_join函數(shù)

函數(shù)簡介

  函數(shù)pthread_join用來等待一個(gè)線程的結(jié)束。

函數(shù)原型為:

  extern int pthread_join __P (pthread_t __th, void **__thread_return);

參數(shù):

  第一個(gè)參數(shù)為被等待的線程標(biāo)識(shí)符

  第二個(gè)參數(shù)為一個(gè)用戶定義的指針,它可以用來存儲(chǔ)被等待線程的返回值。

注意

    這個(gè)函數(shù)是一個(gè)線程阻塞的函數(shù),調(diào)用它的函數(shù)將一直等待到被等待的線程結(jié)束為止,當(dāng)函數(shù)返回時(shí),被等待線程的資源被收回。如果執(zhí)行成功,將返回0,如果失敗則返回一個(gè)錯(cuò)誤號(hào)。

例子:

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

/* 聲明結(jié)構(gòu)體 */
struct member
{
  int num;
  char *name;
};

/* 定義線程pthread */
static void * pthread(void *arg)
{
  struct member *temp;

  /* 線程pthread開始運(yùn)行 */
  printf("pthread start!\n");

  /* 令主線程繼續(xù)執(zhí)行 */
  sleep(2);

  /* 打印傳入?yún)?shù) */
  temp = (struct member *)arg;
  printf("member->num:%d\n",temp->num);
  printf("member->name:%s\n",temp->name);

  return NULL;
}

/* main函數(shù) */
int main(int agrc,char* argv[])
{
  pthread_t tidp;
  struct member *b;

  /* 為結(jié)構(gòu)體變量b賦值 */
  b = (struct member *)malloc(sizeof(struct member));
  b->num=1;
  b->name="mlq";

  /* 創(chuàng)建線程pthread */
  if ((pthread_create(&tidp, NULL, pthread, (void*)b)) == -1)
  {
    printf("create error!\n");
    return 1;
  }

  /* 令線程pthread先運(yùn)行 */
  sleep(1);

  /* 線程pthread睡眠2s,此時(shí)main可以先執(zhí)行 */
  printf("mian continue!\n");

  /* 等待線程pthread釋放 */
  if (pthread_join(tidp, NULL))
  {
    printf("thread is not exit...\n");
    return -2;
  }

  return 0;
}

編譯與執(zhí)行結(jié)果

    編譯與執(zhí)行結(jié)果如下圖所示,可以看到主線程main和線程pthread交替執(zhí)行。也就是說是當(dāng)我們創(chuàng)建了線程pthread之后,兩個(gè)線程都在執(zhí)行,證明創(chuàng)建成功。另外,可以看到創(chuàng)建線程pthread時(shí)候,傳入的參數(shù)被正確打印。


到此這篇關(guān)于linux創(chuàng)建線程之pthread_create的具體使用的文章就介紹到這了,更多相關(guān)linux pthread_create內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • centOS6中使用crontab定時(shí)運(yùn)行執(zhí)行jar程序的腳本

    centOS6中使用crontab定時(shí)運(yùn)行執(zhí)行jar程序的腳本

    這篇文章主要介紹了centOS6中使用crontab定時(shí)運(yùn)行執(zhí)行jar程序的腳本,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Apache2.4和Apache2.2訪問控制配置語法對(duì)比

    Apache2.4和Apache2.2訪問控制配置語法對(duì)比

    這篇文章主要介紹了Apache2.4和Apache2.2訪問控制配置語法對(duì)比,本文給出若干配置實(shí)現(xiàn)講解Apache2.4和Apache2.2訪問控制配置語法的不同之處,需要的朋友可以參考下
    2015-04-04
  • CentOS服務(wù)器apache綁定多個(gè)域名的方法

    CentOS服務(wù)器apache綁定多個(gè)域名的方法

    這篇文章主要為大家詳細(xì)介紹了CentOS服務(wù)器apache綁定多個(gè)域名的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Linux常見基本命令與用法大全

    Linux常見基本命令與用法大全

    這篇文章主要介紹了Linux常見基本命令與用法,總結(jié)分析了Linux各種常見的操作命令,包括文件、用戶、系統(tǒng)等常見操作命令與使用技巧,需要的朋友可以參考下
    2019-12-12
  • apache2.2和php5.2.17在windows下整合過程的錯(cuò)誤解決方法

    apache2.2和php5.2.17在windows下整合過程的錯(cuò)誤解決方法

    照理來說apache和php的整合應(yīng)該是非常簡單的,apache下載windows安裝版本后一路next即可完成安裝,php下載解壓版本后直接解壓到指定目錄,然后在apache的配置文件httpd.conf的最后加入如下幾行即可
    2011-08-08
  • Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟

    Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟

    在日常的后端開發(fā)和運(yùn)維工作中,我們經(jīng)常需要頻繁登錄不同的服務(wù)器進(jìn)行部署、排查問題或上傳文件,傳統(tǒng)的基于用戶名和密碼的登錄方式既不安全又不高效,為此,我們可以利用 SSH 公鑰認(rèn)證的方式,實(shí)現(xiàn)無密碼(免密)登錄遠(yuǎn)程服務(wù)器,下面小編給大家詳細(xì)說說
    2025-04-04
  • Thrift的安裝方法和簡單實(shí)例

    Thrift的安裝方法和簡單實(shí)例

    下面小編就為大家?guī)硪黄猅hrift的安裝方法和簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Linux:FTP工具及SSH遠(yuǎn)程連接工具的使用方式

    Linux:FTP工具及SSH遠(yuǎn)程連接工具的使用方式

    這篇文章主要介紹了Linux:FTP工具及SSH遠(yuǎn)程連接工具的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 查看linux文件系統(tǒng)塊大小的實(shí)現(xiàn)方法

    查看linux文件系統(tǒng)塊大小的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄榭磍inux文件系統(tǒng)塊大小的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • Centos7之如何設(shè)置定時(shí)任務(wù)

    Centos7之如何設(shè)置定時(shí)任務(wù)

    這篇文章主要介紹了Centos7之如何設(shè)置定時(shí)任務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論

通州市| 于都县| 卢氏县| 永安市| 南岸区| 桂平市| 昭苏县| 云和县| 延边| 通渭县| 平武县| 德庆县| 德庆县| 镇安县| 双城市| 长治县| 吴旗县| 会昌县| 延安市| 平定县| 额尔古纳市| 台前县| 彰化县| 陆川县| 汶上县| 阆中市| 咸宁市| 河东区| 青浦区| 张家口市| 江津市| 洞头县| 澎湖县| 大渡口区| 察隅县| 酉阳| 汉寿县| 迁西县| 黄大仙区| 德保县| 张家川|