Linux 多线程开发-线程创建pthread_creat

1、函数原型

int pthread_creat(pthread_t *pid, const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg);
  1. pid:返回创建成功后的线程ID,unsigned int型变量;
  2. attr:设置线程属性,为NULL则为默认属性;
  3. start_routine:指向线程函数;
  4. arg:直线传递给线程的参数。

2、用法

(1)包含头文件 #include <pthread.h>

(2)编译连接添加 -lpthread

3、示例

示例1:不传参数

#include <pthread.h>
#include <stdio.h>
#include <unistd.h> //sleepvoid thread_func(void)
{int i;for(i = 0; i < 3; i++){printf("thread cur cnt:%d\n",i);}printf("thread_func exit\n");return;
}
int main(int argc,char *argv[])
{pthread_t thrid;int ret;ret = thread_creat(&thrid,NULL,(void *(*)(void *))thread_func,NULL);if(ret){printf("pthread creat error:%d\n",ret);return -1;}sleep(1);return 0;
}

sleep(1)让main等待1秒,让线程执行。

示例2:传递整形

#include <pthread.h>
#include <stdio.h>
#include <unistd.h> //sleepvoid thread_func(void *arg)
{int i;int *ptr = (int*)arg;int cnt = *ptr;printf("thread cur cnt:%d\n",cnt);printf("thread_func exit\n");return;
}
int main(int argc,char *argv[])
{pthread_t thrid;int ret;int n = 5;ret = thread_creat(&thrid,NULL,(void *(*)(void *))thread_func,&n);if(ret){printf("pthread creat error:%d\n",ret);return -1;}sleep(1);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse的maven插件最新地址

最新地址&#xff1a;http://download.eclipse.org/technology/m2e/releases 原先&#xff1a;http://m2eclipse.sonatype.org/sites/m2e转载于:https://www.cnblogs.com/binarysheep/p/4752793.html

USB大全

http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html

[react] 怎样动态导入组件?

[react] 怎样动态导入组件&#xff1f; 自己使用 import 和 async/await 实现的异步组件React.lazy开源库 react-loadable 库/react-lazyload 库babel 动态导入&#xff08;Dynamic Import&#xff09; 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容…

/dev/fb0入门练习

From: http://sunnyshineboy.blog.163.com/blog/static/20281511820124121118700/ 大家都知道Unix/Linux系统是由命令驱动的。那么最基本的系统是命令行的&#xff08;就是想DOS一样的界面&#xff09;。X&#xff0d;Window&#xff0d;System是Unix/Linux上的图形系统&…

Linux 多线程开发-等待线程结束pthread_join

1、函数原型 int pthread_join(pthread_t pid, void **value_ptr); pid&#xff1a;所等待的线程ID&#xff1b;value_ptr&#xff1a;通常设置为NULL&#xff0c;如果不为NULL&#xff0c;pthread_join将复制一份线程退出值到一个内存区域&#xff0c;并让*value_ptr指向该内…

SQL常用语句|创建表,设置主键......

新建表 create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \默认值\ null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[字段6] Decimal (12,4) default 0,[字段7] image null ,) 删除…

如何Keil官网下载器件支持包Software Packs

步骤1&#xff1a;百度一下Keil&#xff0c;在搜索结果中点击打开官网 步骤2&#xff1a;在官网的搜索栏输入Software Packs&#xff0c;点击Go 步骤3&#xff1a;点击打开MDK Software Packs 步骤4&#xff1a;往下拉&#xff0c;找到自己需要的Pack 步骤5&#xff1a;以下载s…

为文档快速插入页眉和页脚

专业的文档往往需要配以漂亮的页眉、页脚等修饰性元素才会更加完美。在Word 2010中您不必再为设计漂亮页眉和页脚而大费周折&#xff0c;内置的“页眉样式库”和“页脚样式库”为您提供了丰富的选择余地。 &#xff08;1&#xff09;打开Word 2010文档&#xff0c;在“插入”选…

基于海思开发板的屏幕截图程序(一)

一直以来从事基于海思开发板的开发&#xff0c;但是每次想到“屏幕截图"&#xff0c;真的让人非常惭愧&#xff01; 参考网上的代码修改了下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <sys/ioctl.h> #include <unistd.h> #…

[react] 如何给非控组件设置默认的值?

[react] 如何给非控组件设置默认的值&#xff1f; 表单元素依赖于状态(state)&#xff0c;表单元素需要默认值实时映射到状态的时候&#xff0c;就是受控组件 <input name"username" type"text" value{this.state.username} onChange{this.handleChan…

Linux 多线程开发-线程的属性-分离detached和连接joinable

1、描述 linux的POSIX线程分离状态决定一个线程以什么方式来终止。默认的分离状态是可连接态&#xff08;joinable&#xff09;&#xff0c;创建线程是参数设置为NULL&#xff0c;就是默认连接态&#xff0c;可以被pthread_join。 Linux的POSIX线程要么分离要么连接分别用一下…

oracle10g随服务器启动而自动启动(linux as 5)

http://blog.sina.com.cn/s/blog_5007d1b10100lq7g.html

[BBS]搭建开源论坛之Jforum搭配开源CKEDITOR

本文作者&#xff1a;sushengmiyan本文地址&#xff1a;http://blog.csdn.net/sushengmiyan/article/details/47946065使用默认的编辑器的时候&#xff0c;格式都无法保存。现在按照上节的方法更改了编辑器。今天再对编辑器进行更改&#xff0c;适应jforum.效果如下图了。记录几…

Linux cJSON库的使用、编译为cJSON动态库

参考 &#xff1a; https://blog.csdn.net/nanfeibuyi/article/details/86605314

[react] 怎么在React中引入其它的UI库,例如Bootstrap

[react] 怎么在React中引入其它的UI库&#xff0c;例如Bootstrap react-bootstrap是一个非常受欢迎的针对react封装过的bootstrap&#xff0c;它本身不包含css&#xff0c;所以也是需要使用bootstrap原生库。 在create-react-app建的项目目录中安装react-bootstrap。 npm inst…

基于海思开发板的屏幕截图程序(二)

针对 基于海思开发板的屏幕截图程序(一)作了改进&#xff0c;上篇文章的截图结果不正确的原因是&#xff1a;我公司的开发板上fb0中设置的图片格式为ARGB1555&#xff0c;但是我将它作为RGB565来使用&#xff0c;导致转换出来的图片数据不正确&#xff0c;所以压缩后的图片自然…

Linux 多线程开发-线程的结束pthread_kill和pthread_cancel

1、线程结束的方式 &#xff08;1&#xff09;线程函数中调用pthread_exit函数&#xff0c;不会导致对象析构&#xff0c;可以使用&#xff08;2&#xff09;线程所属的进程结束&#xff0c;进程调用exit&#xff0c;线程C对象不会销毁&#xff0c;不安全&#xff0c;属于被动…

Windows7休眠状态下载技巧攻略

Windows7休眠状态下载技巧攻略 你想让你的快车或者是迅雷通宵下载电影&#xff0c;而且还能省电么?或许你会说&#xff0c;我不关机&#xff0c;给迅雷和快车添加完下载任务&#xff0c;挂在那里不就可以了吗?这没错&#xff0c;开着电脑通宵下载是可以&#xff0c;但这样的方…

支付模块设计

1.背景知识 ssl:SSL为安全套接层&#xff0c;SSL 安全协议最初是由美国网景 Netscape Communication 公司设计开发的&#xff0c;全称为&#xff1a;安全套接层协议 (Secure Sockets Layer) &#xff0c; 它指定了在应用程序协议 ( 如 HTTP 、 Telnet 、 FTP) 和 TCP/IP 之间提…

NB-IOT/Lora/Zigbee/WIFI/蓝牙无线组网方式的对比

NB-IOT/Lora/Zigbee/WIFI/蓝牙无线组网方式的对比 LoRa LoRa(长 距离)是由Semtech公司开发的一种技术&#xff0c;典型工作频率在美国是915MHz&#xff0c;在欧洲是868MHz&#xff0c;在亚洲是433MHz。LoRa的物理层 (PHY)使用了一种独特形式的带前向纠错(FEC)的调频啁啾扩频技…