windows下使用pthread库

最近在看《C++多核高级编程》这本书,收集了些有用的东西,方便在windows下使用POSIX标准进行Pthread开发,有利于跨平台。

--------------------------------------------------
windows下使用pthread库时间:2010-01-27 07:41来源:罗索工作室 作者:落鹤生 点击:1220次

我听很多人都说pthreads对Windows的兼容性不好,但我又没用过,也根本不知道到底好,还是不好,只不过我看ffmpeg都有在用pthreads,而做流媒体的话ffmpeg是必不可少的,那是否ffmpeg选错了,它该怎么搞一套类似pthreads的东西出来呢?问题是它没有。所以我想试试看。

1 下载库

建议大家下载:ftp://sources.redhat.com/pub/pthreads-win32/这个自解压文件,压缩包里的pthreads.2目录是源码,Pre-built.2目录是编译所需的头文件和库文件。

如果要自行编译请看这里:

使用微软的CL来编译:
rem cl.bat
cl.exe main.cpp /c /I"c:/pthreads-w32-2-7-0-release/Pre-built.2/include"
link.exe /out:main_cl.exe main.obj /LIBPATH:"c:/pthreads-w32-2-7-0-release/Pre-built.2/lib" pthreadVC2.lib
pause

或者使用GCC来编译:
rem gcc.bat
g++.exe -o main.o -c main.cpp -I"c:/pthreads-w32-2-7-0-release/Pre-built.2/include"
g++.exe -o main_gcc.exe main.o "c:/pthreads-w32-2-7-0-release/Pre-built.2/lib/libpthreadGC2.a"
pause

嘿嘿!开源就是好啊,跨平台实现得如此容易


2 vc的设置

添加执行库、目录、库文件的路径;

01. //main.cpp
02. #include <stdio.h>
03. #include <pthread.h>
04. #include <assert.h>
05.
06. void* Function_t(void* Param)
07. {
08.      printf("我是线程! ");
09.      pthread_t myid = pthread_self();
10.      printf("线程ID=%d ", myid);
11.      return NULL;
12. }
13.
14. int main()
15. {
16.      pthread_t pid;
17.      pthread_attr_t attr;
18.      pthread_attr_init(&attr);
19.      pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
20.      pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
21. 

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值