【C】多线程编程笔记
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】多线程编程笔记的更多相关文章
- 数据结构(逻辑结构,物理结构,特点) C#多线程编程的同步也线程安全 C#多线程编程笔记 String 与 StringBuilder (StringBuffer) 数据结构与算法-初体验(极客专栏)
数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数 ...
- linux 多线程编程笔记
一, 线程基础知识 1,线程的概念 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行 中必不可少的资源(如程序计 ...
- C#多线程编程笔记
在开发中经常有遇到因为程序执行的时间过长,而造成程序假死的情况,这是因为我们的程序是同步执行的,当执行到需要长时间的操作时,程序就会等待当前的操作完成,从而造成程序假死.C#的异步与多线程就是为了解决 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- 孙鑫VC学习笔记:多线程编程
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- 多线程编程学习笔记——async和await(一)
接上文 多线程编程学习笔记——任务并行库(一) 接上文 多线程编程学习笔记——任务并行库(二) 接上文 多线程编程学习笔记——任务并行库(三) 接上文 多线程编程学习笔记——任务并行库(四) 通过前面 ...
- 多线程编程学习笔记——async和await(二)
接上文 多线程编程学习笔记——async和await(一) 三. 对连续的异步任务使用await操作符 本示例学习如何阅读有多个await方法方法时,程序的实际流程是怎么样的,理解await的异步 ...
- 多线程编程学习笔记——async和await(三)
接上文 多线程编程学习笔记——async和await(一) 接上文 多线程编程学习笔记——async和await(二) 五. 处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...
- 多线程编程学习笔记——使用异步IO(一)
接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...
随机推荐
- Linux入门——shell脚本常用信息小结
1.shell中的$默认变量 $n $1 表示第一个参数,$2 表示第二个参数 ... $# 命令行参数的个数 $0 当前 ...
- 20155308 2016-2017-2《Java程序设计》课堂实践项目
20155308 2016-2017-2<Java程序设计>课堂实践项目 在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅 ...
- 20155217 实验四《Java面向对象程序设计》实验报告
20155217 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局 ...
- 20155325 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结 别用==直接比较浮点数运算结果. Integer默认值-128到127,若超出,需要修改系统属性,所以最好通过equals()比较. 系统错误提示:若超出数组范围,则显示ArrayI ...
- texterea 水平居中
例子:<div style="width: 100%;text-align: center;"> <textarea class="xinde_msg& ...
- jdk和tomcat版本对应
见tomcat的官网说明:tomcat.apache.org/whichversion.html Apache Tomcat ®是一个开源软件实现了Java Servlet和JavaServer Pa ...
- 关于Python的装饰器(2)
Python中被装饰器修饰的函数,解析后会生成一个参数是被修饰函数的装饰器函数对象,可以调用,可以接受传参(如果被修饰的函数定义了参数),实际调用的时候,尽管代码里值写了被修饰的函数,被调用的却是最终 ...
- 一个很easy的脚本--php获取服务器端的相关信息
存档: <html> <head> <meta http-equiv="content-type" content="text/html;c ...
- linux 同步 rsync的使用——远程服务器同步配置
一.背景介绍 由于需要和其他系统进行对接.文件的逻辑地址通过接口传递,而文件的实体需要通过服务器间的同步进行传输.在同事的建议下选择了rsync. 二.RSYNC介绍 RSYNC 有多种方式进行同步, ...
- selenium自动化之js处理点击事件失效
有时候,元素明明已经找到了,使用click()就是无法触发点击事件(当然,这种情况十分少见,至少我只遇到过一次).下面告诉大家这种场景的解决方案. 使用js代码来点击[博客园]这个按钮 代码: #!/ ...