欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

pthread_create函數(shù)

函數(shù)簡(jiǎn)介

  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ù)用來(lái)設(shè)置線程屬性。

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

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

注意

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

pthread_join函數(shù)

函數(shù)簡(jiǎn)介

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

函數(shù)原型為:

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

參數(shù):

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

  第二個(gè)參數(shù)為一個(gè)用戶定義的指針,它可以用來(lái)存儲(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開(kāi)始運(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í)行。也就是說(shuō)是當(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)文章

  • Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17詳細(xì)配置

    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17詳細(xì)配置

    算不上經(jīng)驗(yàn),只能說(shuō)是個(gè)人總結(jié).在搭建過(guò)程中遇到的問(wèn)題.并記錄下來(lái).剛開(kāi)學(xué)習(xí)始搭建環(huán)境的朋友少走一些彎路.這沒(méi)有過(guò)多的參數(shù),并不是什么高性能網(wǎng)站的部署.本人經(jīng)驗(yàn)有限,在此分享一些遇到的問(wèn)題.
    2012-06-06
  • Linux VPS下SSH常用命令整理

    Linux VPS下SSH常用命令整理

    學(xué)習(xí)完如何使用Putty遠(yuǎn)程(SSH)管理Linux VPS,今天繼續(xù)為VPSer新手們整理一篇關(guān)于Linux VPS下SSH常用命令。
    2010-12-12
  • centos 6.5下修改SSH端口及禁用root遠(yuǎn)程登錄的方法

    centos 6.5下修改SSH端口及禁用root遠(yuǎn)程登錄的方法

    Linux各發(fā)行版中SSH端口默認(rèn)為22,如果正式做站或其它用途,為了提高安全性就需要修改掉默認(rèn)的SSH端口號(hào),防止被有心人窮舉密碼。這篇文章主要給大家介紹了在centos 6.5系統(tǒng)下修改SSH端口及禁用root遠(yuǎn)程登錄的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • 安裝Ubuntu20.04與安裝NVIDIA驅(qū)動(dòng)的教程

    安裝Ubuntu20.04與安裝NVIDIA驅(qū)動(dòng)的教程

    這篇文章主要介紹了安裝Ubuntu20.04,安裝NVIDIA驅(qū)動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 寶塔Linux面板 2.8.9穩(wěn)定版介紹

    寶塔Linux面板 2.8.9穩(wěn)定版介紹

    這篇文章主要介紹了寶塔Linux面板 2.8.9穩(wěn)定版介紹,需要的朋友可以參考下
    2017-04-04
  • CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB)

    CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB)

    這篇文章主要介紹了CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB),需要的朋友可以參考下
    2016-10-10
  • Linux+php+apache+oracle環(huán)境搭建之CentOS下源碼編譯安裝PHP

    Linux+php+apache+oracle環(huán)境搭建之CentOS下源碼編譯安裝PHP

    環(huán)境搭建過(guò)程中,編譯安裝PHP最艱辛。需要安裝的依賴組件太多?,F(xiàn)在整理記錄一下。也希望對(duì)讀者能有所幫助
    2014-08-08
  • 如何配置apache虛擬主機(jī)的實(shí)例小結(jié)

    如何配置apache虛擬主機(jī)的實(shí)例小結(jié)

    如果你是第一次配置apache虛擬主機(jī),那么通過(guò)閱讀這篇文章你將會(huì)了解到如何實(shí)現(xiàn)apache虛擬主機(jī)配置。其實(shí)要配置好一臺(tái)虛擬主機(jī)沒(méi)有想象中那么難
    2014-01-01
  • CentOS 7.2 安裝MariaDB詳細(xì)過(guò)程

    CentOS 7.2 安裝MariaDB詳細(xì)過(guò)程

    這篇文章主要為大家介紹了CentOS 7.2 安裝MariaDBMariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)詳細(xì)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Linux中的awk命令使用詳解

    Linux中的awk命令使用詳解

    這篇文章主要介紹了Linux中的awk命令使用詳解的相關(guān)資料,需要的朋友可以參考下
    2023-11-11

最新評(píng)論