日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
linux創(chuàng)建線(xiàn)程之pthread_create的具體使用

pthread_CREATE函數(shù)

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、菏澤ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的菏澤網(wǎng)站制作公司

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

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

頭文件

  #include

函數(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ù)為指向線(xiàn)程標(biāo)識(shí)符的指針。

  第二個(gè)參數(shù)用來(lái)設(shè)置線(xiàn)程屬性。

  第三個(gè)參數(shù)是線(xiàn)程運(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è)線(xiàn)程的結(jié)束。

函數(shù)原型為:

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

參數(shù):

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

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

注意

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

例子:

#include
#include
#include

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

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

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

  /* 令主線(xià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)建線(xiàn)程pthread */
  if ((pthread_create(&tidp, NULL, pthread, (void*)b)) == -1)
  {
    printf("create error!\n");
    return 1;
  }

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

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

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

  return 0;
}

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

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

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

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


網(wǎng)站欄目:linux創(chuàng)建線(xiàn)程之pthread_create的具體使用
標(biāo)題來(lái)源:http://www.5511xx.com/article/dhhgieo.html