博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pthread_create
阅读量:6984 次
发布时间:2019-06-27

本文共 1657 字,大约阅读时间需要 5 分钟。

hot3.png

pthread_create是UNIX环境创建线程函数

头文件

  #include<pthread.h>

函数声明

  int pthread_create(
*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);

返回值

  若成功则返回0,否则返回出错编号
  返回成功时,由tidp指向的内存单元被设置为新创建线程的线程ID。attr参数用于制定各种不同的线程属性。新创建的线程从start_rtn函数的地址开始运行,该函数只有一个万能指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg的参数传入。
  linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。
  由 restrict 修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取。对对象的存取都限定于基于由 restrict 修饰的指针表达式中。 由 restrict 修饰的指针主要用于函数形参,或指向由 malloc() 分配的内存空间。restrict 数据类型不改变程序的语义。 
能通过作出 restrict 修饰的指针是存取对象的唯一方法的假设,更好地优化某些类型的例程。

参数

  第一个参数为指向线程
的指针。
  第二个参数用来设置线程属性。
  第三个参数是线程运行函数的起始地址。
  最后一个参数是运行函数的参数。
  另外,在编译时注意加上-lpthread参数,以调用静态链接库。因为pthread并非Linux系统的默认库

示例

  
//打印线程 IDs  #include 
  #include
  #include
  #include
  #include
  pthread_t ntid;  void printids(const char *s)  {      pid_t pid;      pthread_t tid;      pid = getpid();      tid = pthread_self();      printf("%s pid %u tid %u (0x%x)\n", s,(unsigned int)pid, (unsigned int)tid, (unsigned int)tid);  } 
    void *thr_fn(void *arg)  {      printids("new thread: ");      return((void *)0);  }  int main(void)  {  int err;  err = pthread_create(&ntid, NULL, thr_fn, NULL);  if (err != 0)      printf("can't create thread: %s\n", strerror(err));      printids("main thread:");      sleep(1);      exit(0);  }  $ gcc main.c -lpthread  $ ./a.out  main thread: pid 7398 tid 3084450496 (0xb7d8fac0)  new thread: pid 7398 tid 3084446608 (0xb7d8eb90)

转载于:https://my.oschina.net/lwwklys/blog/73395

你可能感兴趣的文章
魅族 C++ 微服务框架技术内幕揭秘
查看>>
flask 学习笔记 mvc ,sqlalchemy(insert,update)
查看>>
HTML基础(一)
查看>>
EGOImageView 解析
查看>>
我的友情链接
查看>>
1.解读REST和JAX-RS
查看>>
将RHEL7/centos7系统网卡名称eno16777736改为eth0
查看>>
Nginx域名跳转
查看>>
NTP时间服务器安装
查看>>
Thinkphp3.23 关联模型relation方法不存在解决方法
查看>>
bash脚本编程之一 条件判断及算术运算
查看>>
工作中非常逆天的shell命令
查看>>
我的友情链接
查看>>
[IOS]clang diagnostic、Wprotocol ..
查看>>
HTML4.01规范-HTML文档的顶层结构(3)
查看>>
11个鲜为人知的实用Linux命令 - Part 2
查看>>
我国今日接连发生4起地震 震级均在3级以上
查看>>
优化PhoneGAP的Splashscreen 类
查看>>
增强 wp_list_authors 显示文章最多的作者
查看>>
代码:显示查询的日历
查看>>