首先,我的测试环境是Ubuntu12.04,用的eclispe cdt,当然,你有可以选择采用vim

今天主要讲的线程的创建。

#include

#include

#include //这个是pthread的头文件

void *print_message_function( void *ptr );//函数的预定义,参数类型是由pthread固定的,只能这样。

int main(int argc,char *argv[])

{

pthread_t thread1, thread2;//两个thread

const char *message1 = "Thread 1";

const char *message2 = "Thread 2";

int  iret1, iret2;

/* Create independent threads each of which will execute function */

iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);

iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);

/* Wait till threads are complete before main continues. Unless we  */

/* wait we run the risk of executing an exit which will terminate   */

/* the process and all threads before the threads have completed.   */

pthread_join( thread1, NULL);//join代表主线程等待thread1执行完,再往下走,和java中的join一样

pthread_join( thread2, NULL);

printf("Thread 1 returns: %d\n",iret1);

printf("Thread 2 returns: %d\n",iret2);

return 0;

}

void *print_message_function( void *ptr )

{

char *message;

message = (char *) ptr;

printf("%s \n", message);

return (void *)NULL;

}

关键点:

int pthread_create(pthread_t * thread,

const pthread_attr_t * attr,

void * (*start_routine)(void *),

void *arg);

Arguments:

thread-返回新建的Thread ID . (unsigned long int defined in bits/pthreadtypes.h)

attr-一般设置为NULL,表示没有特殊的属性.

void * (*start_routine)- 线程实际执行函数的函数指针..方法只有一个类型未void *的指针参数

*arg- pointer to argument of function. 想要传递多个参数,只能封装成struct后喂给这个函数

最后说下编译,最简单就是通过gcc命令行进行编译:

gcc-lpthread pthread1.c)

Run: ./a.out

Results:

Thread 1

Thread 2

Thread 1 returns: 0

Thread 2 returns: 0

好了,这就是最基本的pthread线程创建过程,当然多线程最重要的还是线程之间的同步和数据交互,下回我再一一阐述。

如果有什么说的不正确的地方,还请各位看官指正。

linux c 创建新线程,Linux C Phread 入门1---线程创建相关推荐

  1. linux 基金会 认证,Linux基金会宣布新的Linux认证计划

    Linux基金会宣布新的Linux认证计划 明通新闻专线 2014-08-26 11:27 [摘要] LINUXCON+CLOUDOPEN大会――致力于促进Linux和协同开发发展的非营利性组织Lin ...

  2. w10系统服务器如何创建新用户,小编教你win10怎么创建新用户账户

    很多人想体验Win10系统,但又不想和其它人共同使用同一个用户.特别是在家里,如果只有一台电脑的话,分歧立马见效,最好的办法就是新建一个用户,分开使用.那么Win10如何创建新用户账户呢?为此,小编就 ...

  3. linux mint 19新功能,Linux Mint 19.3将在2019年12月正式发布,附新功能简介

    Linux Mint 19.3 'Tricia'将定于2019年12月正式发布并提供ISO下载,在2019年圣诞节前后你就可以使用或升级到该版本.它基于稳定的Ubuntu 18.04.3 LTS版本, ...

  4. linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网

    新计划推出首个全虚拟化.注重实际表现.不限发行版的认证考试,将有助扩大全球Linux专业人才库 Marketwired 2014年8月20日美国伊利诺伊州芝加哥消息--LINUXCON+CLOUDOP ...

  5. 服务器安装系统时无法创建新的分区,重装系统出现“我们无法创建新的分区,也找不到现有的分区”...

    今天给朋友的电脑重装系统,本来打算是使用微PE的CGI备份还原工具来给 C 盘重装一个系统,但是装完后重启无法进入系统. 不怕,以前也遇到过这种事情.根据经验我再次使用微PE,格式化 C 盘分区,找到 ...

  6. 服务器系统我们无法创建新的分区,安装Win10系统提示“无法创建新的分区也找不到现有的分区”如何解决...

    越来越多的用户都想要安装win10系统来使用,然而有不少用户在安装win10系统的时候,却提示"无法创建新的分区也找不到现有的分区",遇到这样的问题该怎么办呢,本文就给大家讲解一下 ...

  7. Linux内创建新用户,linux下手工创建新用户

    当我们要创建一个用户时,通常使用useradd命令就可以自动创建了一个用户:实际上,在linux下,一切皆文件,设置好几个文件,也是可以创建出一个用户: 文件如下: /etc/passwd  :用户 ...

  8. linux系统登录新用户,Linux为新员工创建用户以及配置登录公钥

    背景 因新入职员工需要为其LInux服务器创建账户以及添加员工同事的主机公钥,以下步骤均以脚本实现 需求1.在Linux系统中创建用户 2.创建用户.ssh存放公钥目录 3.将用户的主机公钥信息加入到 ...

  9. 解决Linux无法创建新用户和/home目录下无法创建新目录的问题,或者无权限创建用户目录问题mkdir: cannot create directory ‘ ’: Permissi

    问题一:挂载造成 然而在创建用户的时候被告知权限不够,而且直接在/home目录下执行mkdir命令也无法完成创建.可能是挂载程序造成了. 接下来可以使用如下的办法: 1.注释掉/etc/auto.ma ...

最新文章

  1. liu四声拼音怎么读_拼音是99%的西安孩子幼升小必备知识!附:幼小拼音学习计划...
  2. Python中转换角度为弧度的radians()方法
  3. 这个夏天,感动我的歌,感动我的你
  4. 下列选项不属于有机物的是_初级会计实务:属于工业企业营业收入的有哪些?...
  5. 计算机硬件的基本组成(计算机组成原理)
  6. matlab-画折线图
  7. 《打开量化投资的黑箱》
  8. mxh缩写英语_mxht的含义,mxht是什么的缩写,mxht的词语,mxht代表的意思
  9. 估计四川长虹的beta系数
  10. 人工神经网络具有的基本属性是什么?
  11. 某海外电商平台参数分析 ECDSA签名(js逆向)
  12. Vue2 面试题总结1(笔记自用)
  13. FFmpeg 录制桌面、麦克风、摄像头
  14. http、https 等 常用默认端口号
  15. 微信小程序支付(建行支付)
  16. 倾向得分匹配只看这篇就够了
  17. ubuntu16 安装UR5e driver
  18. Tips of Terminal
  19. 计算机应用 高职教案,关于高职院校计算机应用论文
  20. 律师百度百科词条创建怎么做?怎么创建律师百科词条?

热门文章

  1. OA系统选型:选择好的工作流引擎
  2. 以软件开发生命周期来说明各种测试的使用情况
  3. [转]BT种子文件格式
  4. geohash美团附近酒店搜索-技术方案
  5. html圆形空心选择按钮,CSS3 简单的实心/空心按钮
  6. python模块文件的扩展名不一定是py_Python导入:导入没有.py扩展名的模块?
  7. android fragment 覆盖,Android Fragment 替换覆盖生命周期方法详解
  8. 下拉推广系统立择火星推荐_【电商干货】拼多多搜索推广 如何选对致命关键词 ?...
  9. python 每月每周_R-Python:获取每月,每周的索引点
  10. Ubuntu下增加Python的PATH环境变量