我是靠谱客的博主 英俊咖啡豆,最近开发中收集的这篇文章主要介绍Linux线程之创建(十)1.线程的创建2.参考代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Linux线程之创建(十)

  • 1.线程的创建
  • 2.参考代码

1.线程的创建

	int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg );

功能:
创建一个线程。

参数:
thread:线程标识符地址。
attr:线程属性结构体地址,通常设置为 NULL。
start_routine:线程函数的入口地址。
arg:传给线程函数的参数。

返回值:
成功:0
失败: 非0

在一个线程中调用pthreadcreate()创建新的线程后,当前线程从pthreadcreate()返回继续往下执行,而新的线程所执行的代码由我们传给pthreadcreate的函数指针startroutine决定。 由于pthread_create的错误码不保存在errno中,因此不能直接用perror()打印错误信息,可以先用strerror()把错误码转换成错误信息再打印。

2.参考代码

//=============================================================================
// File Name
: thread_create.c
// Author
: FengQQ
//
// Description
: 创建线程
// Annotation
: 
//
// Created by FengQQ. 2020-10-04
//=============================================================================
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
static int num = 0;
//---------------线程1入口函数---------------
void *pthread1_callback(void *arg)
{
while(1)
{
num++;
printf("I am thread1 run...rn");
sleep(1);
}
}
//---------------线程2入口函数---------------
void *pthread2_callback(void *arg)
{
while(1)
{
printf("I am thread2 run num:%drn",num);
sleep(1);
}
}
int main(int argc,char * argv[])
{
pthread_t ptid1,ptid2;
int err;
err = pthread_create(&ptid1,NULL,pthread1_callback,NULL);	//创建线程1
if(err != 0)
{
printf("create new pthread1 failed...rn");
return -1;
}
err = pthread_create(&ptid2,NULL,pthread2_callback,NULL);	//创建线程2
if(err != 0)
{
printf("create new pthread2 failed...rn");
return -1;
}
printf("main pthread...rn");
sleep(2);
return 0;
}

Linux线程之回收资源(十一)

链接: link.(https://blog.csdn.net/qq_39721016/article/details/120239822)

最后

以上就是英俊咖啡豆为你收集整理的Linux线程之创建(十)1.线程的创建2.参考代码的全部内容,希望文章能够帮你解决Linux线程之创建(十)1.线程的创建2.参考代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部