1. pthread_create(pthread类型指针变量 ,NULL ,函数 ,函数参数[多个参数用结构体传])

2. pthread_join(pthread类型指针变量, 返回一般为null)

  pthread_join的作用:

pthread_join()函数,以阻塞的方式等待thread指定的线程结束。

如果不用这个函数,直接create后,进程也会运行,但是主线程不会等待这些子线程是否已经运行结束,而继续向下运行,很快主线程就结束了,而子线程还未运行完,被迫结束。

加入pthread_join后,主线程会一直等待直到等待的线程结束自己才继续向下运行,使创建的线程有机会执行。

 #include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <signal.h> typedef struct params{
char * value;
int num;
}params;
void thread_mess(params *); void main(void)
{ int err;
pthread_t t1,t2;
void *tret; params p_1={"threadd_1",};
params p_2={"threadd_2",}; err = pthread_create(&t1,NULL,(void *)thread_mess,&p_1);
if(err != )
{
puts("error 1");
exit();
}
err = pthread_create(&t2,NULL,(void *)thread_mess,&p_2);
if(err != )
{
puts("error 2");
exit();
} //pthread_join第二个参数是接受的是pthread_exit返回的数据
err = pthread_join(t1,&tret);
printf("t1 join %d\n",(int)tret);
err = pthread_join(t2,&tret);
printf("t2 join %d\n",(int)tret);
} void thread_mess(params * array)
{
printf("%s\n",array->value);
pthread_exit((void *)array->num); }

【C】多线程编程笔记的更多相关文章

  1. 数据结构(逻辑结构,物理结构,特点) C#多线程编程的同步也线程安全 C#多线程编程笔记 String 与 StringBuilder (StringBuffer) 数据结构与算法-初体验(极客专栏)

    数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数 ...

  2. linux 多线程编程笔记

    一, 线程基础知识 1,线程的概念 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行 中必不可少的资源(如程序计 ...

  3. C#多线程编程笔记

    在开发中经常有遇到因为程序执行的时间过长,而造成程序假死的情况,这是因为我们的程序是同步执行的,当执行到需要长时间的操作时,程序就会等待当前的操作完成,从而造成程序假死.C#的异步与多线程就是为了解决 ...

  4. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  5. 孙鑫VC学习笔记:多线程编程

    孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  6. 多线程编程学习笔记——async和await(一)

    接上文 多线程编程学习笔记——任务并行库(一) 接上文 多线程编程学习笔记——任务并行库(二) 接上文 多线程编程学习笔记——任务并行库(三) 接上文 多线程编程学习笔记——任务并行库(四) 通过前面 ...

  7. 多线程编程学习笔记——async和await(二)

    接上文 多线程编程学习笔记——async和await(一) 三.   对连续的异步任务使用await操作符 本示例学习如何阅读有多个await方法方法时,程序的实际流程是怎么样的,理解await的异步 ...

  8. 多线程编程学习笔记——async和await(三)

    接上文 多线程编程学习笔记——async和await(一) 接上文 多线程编程学习笔记——async和await(二) 五.   处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...

  9. 多线程编程学习笔记——使用异步IO(一)

    接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...

随机推荐

  1. Python学习笔记——常用的内置函数

    一.yield def EricReadlines(): seek = 0 while True: with open('D:/temp.txt','r') as f: f.seek(seek) da ...

  2. 004---IO模型

    io模型 同步.异步.阻塞.非阻塞概念 同步:发出一个功能调用时,在没有得到结果之前,该调用就不会返回,原地等待 异步:相反,不需要等待 阻塞:调用结果返回之前,当前线程会被挂起,如io操作,只有在得 ...

  3. Eclipse怎么恢复默认界面

    Eclipse里面将界面恢复到默认状态: 1.选择Eclipse的工具栏里面的“窗口(Window)”,找到“复位透视图(Reset Perspective)”选项: 2.单击“复位透视图(Reset ...

  4. 机器人操作系统ROS-工作空间的建立

    运行例子为重德智能的github中的robot_sim_demo 创建一个robot_ws工作空间 1. mkdir -p robot_ws/src   #创建catkin 工作空间 2. cd ro ...

  5. 20155336 2016-2017-2 《Java程序设计》第四周学习总结

    20155336 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承:面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序代码提升为 ...

  6. 2016-2017-2 20155339《 java面向对象程序设计》实验四Android程序设计

    2016-2017-2 20155339< java面向对象程序设计>实验四Android程序设计 实验内容 1.Android Stuidio的安装测试: 参考<Java和Andr ...

  7. 分享daocloud联合创始人陈齐彦关于docker的一段阐述

    罗比,本名陈齐彦,他在加入DaoCloud之前是EMC中国研究院的总架构师,云平台及应用实验室的创始人.谈及创业的初心,他激动了起来: 容器这东西和当年Hadoop一样,是互联网技术对企业IT技术的逆 ...

  8. 成都Uber优步司机奖励政策(4月12日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. Scrapy爬取美女图片第三集 代理ip(下)

    这是我的公众号获取原创保护的首篇文章,原创的肯定将支持我继续前行.现在写这篇文章的时间是晚上11:30,写完就回寝室休息了,希望更多的朋友与我一起同行(当然需要一个善良的妹子的救济).(我的新书< ...

  10. HDU-1053:Advanced Fruits(LCS+路径保存)

    链接:HDU-1053:Advanced Fruits 题意:将两个字符串合成一个串,不改变原串的相对顺序,可将相同字母合成一个,求合成后最短的字符串. 题解:LCS有三种状态转移方式,将每个点的状态 ...