GCC + pthread

多线程介绍
 
POSIX 1003.1-2001 定义了多线程编程的标准API。这个API就是广为人知的pthreads。它的目的在于为跨平台编写多线程程序提供便利。
  
本文介绍了Linux 和 WIN32 平台下的多线程程序的编写方法
 ==================================================================================================
Linux 系统对 pthreads 提供了良好的支持。一般地安装完Linux系统后在/usr/include目录下包含了 pthreads 的头文件。在 /usr/lib 下面包含了pthread 的库文件:libpthread.a 和 libpthread.so。其中libpthread.a 为静态链接库,libpthread.so为动态连接库。
 在linux下编译时需要增加 -lpthread


==================================================================================================
WIN32 threads 线程库并不直接支持 pthreads,因此网络上出现了POSIX Threads for Win32 的开源项目,为 WIN32 下开发 Pthreads 多线程程序提供了方便。


Pthreads for win32 的下载地址为:


1 ftp://sourceware.org/pub/pthreads-win32 ;


2 http://dl.dbank.com/c0ba0nemwz ;


最新版本为 2-8-10。下载pthreads-w32-2-8-0-release.exe 后运行解压出三个目录:pre-build.2  /  pthreads.2   /   QueueUserAPCEx。Pthreads.2 里面包含了pthreads 的源代码,可以利用该源代码编译出pthread的静态库,本文暂不讨论。


我们主要关心pre-build.2 这个目录。Pre-build.2 里面包含了include和 lib 分别包含了pthreads for win32 的头文件和库文件(包括静态库和动态连接库)。


对于采用MinGW编译器,需要把 pre-build.2/lib/libpthreadGCE2.a 复制到MinGW下的lib目录中,同时还需要把 pre-build.2/include/pthread.h ,pre-build.2/include/sched.h ,pre-build.2/include/semaphore.h 头文件复制到MinGW下的include目录中。然后编译程序,但是最终发布程序时需要附带上 pre-build.2/lib/pthreadGC2.dll 动态连接库。


 MinGW下载地址:http://dl.dbank.com/c0nwzab00y


下面是Eclipse3.7 + GCC4.6.1下的测试程序:



[cpp] view plaincopy
  1. #include <pthread.h>  
  2. #include <stdio.h>  
  3.   
  4.   
  5. void* thread_one(void* dummy)  
  6. {  
  7.  while(1)  
  8.  {  
  9.   printf("Hello,world.this is thread one\n");  
  10.  }  
  11. }  
  12.   
  13.   
  14. void* thread_two(void* dummy)  
  15. {  
  16.  while(1)  
  17.  {  
  18.   printf("Hello,world.this is thread two\n");  
  19.  }  
  20. }  
  21.   
  22.   
  23. int main(void)  
  24. {  
  25.  pthread_t tid[2];  
  26.  pthread_create(&tid[0],NULL,thread_one,NULL);  
  27.  pthread_create(&tid[1],NULL,thread_two,NULL);  
  28.  pthread_exit(NULL);  
  29. }  



 


在Eclipse下编译该程序时,需要添加 libpthreadGCE2.a 库来编译。

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

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

相关文章

MATLAB的size、length函数

size&#xff08;&#xff09;&#xff1a;获取矩阵的行数和列数 &#xff08;1&#xff09;ssize(A), 返回一个行向量&#xff0c;该行向量的第一个元素是矩阵的行数&#xff0c;第二个元素是矩阵的列数。 &#xff08;2&#xff09;[r,c]size(A), 当有两个输出参数…

python两个时间内的工作日_如何在Python中找到两个日期之间的星期一或任何其他工作日的数目?...

这是高效的-即使在开始和结束之间有一万天的时间-而且仍然非常灵活(它在sum函数内最多迭代7次)&#xff1a;def intervening_weekdays(start, end, inclusiveTrue, weekdays[0, 1, 2, 3, 4]):if isinstance(start, datetime.datetime):start start.date() # make a date from …

JS--继承

构造函数、原型、实例、原型链之间的联系 描述&#xff1a;每个构造函数都有一个原型对象&#xff1b; 每个原型对象都有一个指针&#xff0c;指向构造函数&#xff1b; 每个实例对象都有一个内部指针&#xff0c;指向原型对象&#xff1b; 若此时的原型对象是另一个类型的实例…

Linux C/C++多线程pthread实例

inux中C/C开发多线程程序多遵循POSIX线程接口&#xff08;也就是pthread&#xff09;&#xff0c;pthread涉及函数很多个&#xff08;更多参见pthread.h头文件&#xff09;&#xff0c;常用的有pthread_create、pthread_dispath、pthread_mutex_lock&#xff08;互斥锁定&#…

python 横向合并_使用Python横向合并excel文件的实例

起因&#xff1a;有一批数据需要每个月进行分析&#xff0c;数据存储在excel中&#xff0c;行标题一致&#xff0c;需要横向合并进行分析。数据示意&#xff1a;具有多个代码&#xff1a;# -*- coding: utf-8 -*-"""Created on Sun Nov 12 11:19:03 2017author:…

javafx游戏_JavaFX游戏(四连环)

javafx游戏这是我的第一个JavaFX游戏教程&#xff0c;也是我关于JavaFX面板的第一篇博客文章。 我仅用200几行代码就完成了这四款连接游戏&#xff0c;足以应付一个简单的游戏。 我在这里使用GridPane面板对磁盘进行布局&#xff0c;GridPane是JavaFX布局窗格之一&#xff0c;但…

Matlab的sort函数

1、Matlab自带排序函数sort用法 [Y,I] sort(X,DIM,MODE) sort函数默认Mode为ascend为升序&#xff0c;sort(X,descend)为降序排列。 sort(X)若X是矩阵&#xff0c;默认对X的各列进行升序排列 sort(X,dim) dim1时等效sort(X)dim2时表示对X中的各行元素升序…

django HttpResponse的用法

一、传json字典 def back_json(rquest):#JsonResponse父类是HttpResponse&#xff0c;原码里调用了json.dumps()from django.http import JsonResponseback_msg {name:name,age:123}return JsonResponse(back_msg) 二、传列表 def back_json(rquest):#JsonResponse父类是HttpR…

gcc/g++ 链接库的编译与链接

程序编译一般需要经预处理、编译、汇编和链接几个步骤。在实际应用中&#xff0c;有些公共代码需要反复使用&#xff0c;就把这些代码编译成为“库”文件。在链接步骤中&#xff0c;连接器将从库文件取得所需的代码&#xff0c;复制到生成的可执行文件中&#xff0c;这种库称为…

Speedment 3.0的新功能

如果您关注我的博客&#xff0c;那么您会知道我已经参与开源项目Speedment已有一段时间了。 在夏季和秋季&#xff0c;我完成了工具包的下一个3.0.0大型发行版的大量工作。 在这篇文章中&#xff0c;我将展示我们已经在平台中内置的一些很酷的新功能&#xff0c;并说明如何入门…

Matlab在坐标点上按顺序标序号

程序一&#xff1a; clear x[1 3 7 10]; y[2 4 9 43]; plot(x,y,r-) hold on for i1:4%用这个循环cnum2str(i);c[ ,c];text(x(i),y(i),c) end axis([0 10 0 50]) 程序二&#xff1a; xrand(10,1)*10; yrand(10,1)*10; %x,y表示任意10个点的坐标 plot(x,y,*); for i1:10text(x(…

python表情符号编码大全_Emoji的编码以及常见问题处理

我在虎嗅上看过一篇关于Emoji的趣闻, 特别有意思, 在这里跟大家分享一下。里面提到了Emoji是怎么诞生的。1999年前后&#xff0c;日本一个名叫栗田穰崇的年轻人&#xff0c;和许多直男一样&#xff0c; 给女友发的短信经常会被误解。比如&#xff0c;“知道了”被解读成“生气了…

机器学习套路三步走

机器学习的套路 1.model如何对现实的场景进行抽象2.model如何对参数进行求解3.model的效果如何评价1.抽象 例如线性回归&#xff0c;就是认为预测变量y和特征X之间存在线性关心&#xff0c;老掉牙的例子就是房价和地区收入&#xff0c;人口密度等等的线性关系 线性回归的数学假…

C及opencv指针释放问题

一个图像处理的项目运行时没有问题&#xff0c;最后关掉显示的图片时提醒触发一个断点&#xff0c;点击继续则出现以下画面&#xff1a;断点停留在释放指针的那一行。究其原因如下&#xff1a; 1.错用free释放IplImage* IplImage* input cvLoadImage("data/LOGO/2_1.jpg&…

gcc/g++基本命令简介

gcc & g现在是gnu中最主要和最流行的c & c编译器 。 g是c的命令&#xff0c;以.cpp为主&#xff0c;对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。 其实编译器是根据gcc还是g来确定是按照C标准还是C标准编译链接。 下面以Test.cpp为例&#x…

python返回长度值_Python 文件 truncate() 方法(截断返回截取长度)

概述Python 文件 truncate() 方法用于截断文件并返回截断的字节长度。指定长度的话&#xff0c;就从文件的开头开始截断指定长度&#xff0c;其余内容删除&#xff1b;不指定长度的话&#xff0c;就从文件开头开始截断到当前位置&#xff0c;其余内容删除。语法truncate() 方法…

Opencv中IplImage的四字节对齐问题

一、结构解释IplImage数据结构体中有两个宽度&#xff1a;1 是width属性&#xff0c;表示图像的每行像素数&#xff1b;2 是widthStep属性&#xff0c;表示存储一行像素需要的字节数。在OpenCV里边&#xff0c;widthStep必须是4的倍数&#xff0c;从而实现字节对齐&#xff0c;…

庞佐错觉_水晶球错觉

庞佐错觉我注意到人们有时会避免进行彻底的测试。 对于某些人来说&#xff0c;这听起来像是伪造的&#xff0c;但请听我说…… 测试会产生被困的感觉&#xff0c;每引入一个新的测试&#xff0c;负担就会加重。 建立稳定&#xff0c;无干扰且质量保证的测试套件是一项艰巨的任务…

静态编译和动态编译区别

静态函数库 一般扩展名为&#xff08;.a&#xff09;,这类的函数库通常扩展名为libxxx.a 。 这类函数库在编译的时候会直接整合到程序中&#xff0c;所以利用静态函数库编译成的文件会比较大&#xff0c;这类函数库最大的优点就是编译成功的可执行文件可以独立运行&#xff0c;…

python怎么爬取电影海报_python爬虫之通过BeautifulSoup获取豆瓣最新上映电影的海报...

0.目录1.分析页面2.初步代码3.完整代码4.总结5.补充1.分析页面上一次我们讲了xpath获取豆瓣最新上映电影的海报&#xff0c;这一次会分析如何使用BeautifulSoup获取。启程&#xff1a;python爬虫之通过xpath获取豆瓣最新上映电影的海报​zhuanlan.zhihu.com首先&#xff0c;进入…