linux c 创建新线程,Linux C Phread 入门1---线程创建
首先,我的测试环境是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---线程创建相关推荐
- linux 基金会 认证,Linux基金会宣布新的Linux认证计划
Linux基金会宣布新的Linux认证计划 明通新闻专线 2014-08-26 11:27 [摘要] LINUXCON+CLOUDOPEN大会――致力于促进Linux和协同开发发展的非营利性组织Lin ...
- w10系统服务器如何创建新用户,小编教你win10怎么创建新用户账户
很多人想体验Win10系统,但又不想和其它人共同使用同一个用户.特别是在家里,如果只有一台电脑的话,分歧立马见效,最好的办法就是新建一个用户,分开使用.那么Win10如何创建新用户账户呢?为此,小编就 ...
- linux mint 19新功能,Linux Mint 19.3将在2019年12月正式发布,附新功能简介
Linux Mint 19.3 'Tricia'将定于2019年12月正式发布并提供ISO下载,在2019年圣诞节前后你就可以使用或升级到该版本.它基于稳定的Ubuntu 18.04.3 LTS版本, ...
- linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网
新计划推出首个全虚拟化.注重实际表现.不限发行版的认证考试,将有助扩大全球Linux专业人才库 Marketwired 2014年8月20日美国伊利诺伊州芝加哥消息--LINUXCON+CLOUDOP ...
- 服务器安装系统时无法创建新的分区,重装系统出现“我们无法创建新的分区,也找不到现有的分区”...
今天给朋友的电脑重装系统,本来打算是使用微PE的CGI备份还原工具来给 C 盘重装一个系统,但是装完后重启无法进入系统. 不怕,以前也遇到过这种事情.根据经验我再次使用微PE,格式化 C 盘分区,找到 ...
- 服务器系统我们无法创建新的分区,安装Win10系统提示“无法创建新的分区也找不到现有的分区”如何解决...
越来越多的用户都想要安装win10系统来使用,然而有不少用户在安装win10系统的时候,却提示"无法创建新的分区也找不到现有的分区",遇到这样的问题该怎么办呢,本文就给大家讲解一下 ...
- Linux内创建新用户,linux下手工创建新用户
当我们要创建一个用户时,通常使用useradd命令就可以自动创建了一个用户:实际上,在linux下,一切皆文件,设置好几个文件,也是可以创建出一个用户: 文件如下: /etc/passwd :用户 ...
- linux系统登录新用户,Linux为新员工创建用户以及配置登录公钥
背景 因新入职员工需要为其LInux服务器创建账户以及添加员工同事的主机公钥,以下步骤均以脚本实现 需求1.在Linux系统中创建用户 2.创建用户.ssh存放公钥目录 3.将用户的主机公钥信息加入到 ...
- 解决Linux无法创建新用户和/home目录下无法创建新目录的问题,或者无权限创建用户目录问题mkdir: cannot create directory ‘ ’: Permissi
问题一:挂载造成 然而在创建用户的时候被告知权限不够,而且直接在/home目录下执行mkdir命令也无法完成创建.可能是挂载程序造成了. 接下来可以使用如下的办法: 1.注释掉/etc/auto.ma ...
最新文章
- liu四声拼音怎么读_拼音是99%的西安孩子幼升小必备知识!附:幼小拼音学习计划...
- Python中转换角度为弧度的radians()方法
- 这个夏天,感动我的歌,感动我的你
- 下列选项不属于有机物的是_初级会计实务:属于工业企业营业收入的有哪些?...
- 计算机硬件的基本组成(计算机组成原理)
- matlab-画折线图
- 《打开量化投资的黑箱》
- mxh缩写英语_mxht的含义,mxht是什么的缩写,mxht的词语,mxht代表的意思
- 估计四川长虹的beta系数
- 人工神经网络具有的基本属性是什么?
- 某海外电商平台参数分析 ECDSA签名(js逆向)
- Vue2 面试题总结1(笔记自用)
- FFmpeg 录制桌面、麦克风、摄像头
- http、https 等 常用默认端口号
- 微信小程序支付(建行支付)
- 倾向得分匹配只看这篇就够了
- ubuntu16 安装UR5e driver
- Tips of Terminal
- 计算机应用 高职教案,关于高职院校计算机应用论文
- 律师百度百科词条创建怎么做?怎么创建律师百科词条?
热门文章
- OA系统选型:选择好的工作流引擎
- 以软件开发生命周期来说明各种测试的使用情况
- [转]BT种子文件格式
- geohash美团附近酒店搜索-技术方案
- html圆形空心选择按钮,CSS3 简单的实心/空心按钮
- python模块文件的扩展名不一定是py_Python导入:导入没有.py扩展名的模块?
- android fragment 覆盖,Android Fragment 替换覆盖生命周期方法详解
- 下拉推广系统立择火星推荐_【电商干货】拼多多搜索推广 如何选对致命关键词 ?...
- python 每月每周_R-Python:获取每月,每周的索引点
- Ubuntu下增加Python的PATH环境变量