日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

在windows下配置pthread多线程

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在windows下配置pthread多线程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? Pthread是由POSIX提出的一套通用的線程庫,在linux平臺(tái)下,它被廣泛的支持,而windows平臺(tái)下,卻并不被支持,而pthreads-w32為我們提供了解決方案,本文我們準(zhǔn)備在我們的windows平臺(tái)下進(jìn)行pthread-w32的安裝,在網(wǎng)絡(luò)上有類似的文章,但是講的都是比較老的平臺(tái),在windows8下支持并不全面,不過可以作為參考。我們?cè)谶@里貼出幾個(gè)網(wǎng)址,供參考使用。

???????Windows 7 64bit和Visual Studio 2010下安裝及使用Pthread-w32 2.8?

???????windows下使用pthread庫(轉(zhuǎn))

??????? 如果你的是XP系統(tǒng)或者win7 32位系統(tǒng),那么,那兩篇文章已經(jīng)足以你完成pthread-w32的安裝了。現(xiàn)在,我們開始講我們的嘗試過程。

一、安裝平臺(tái)

??????? windows8 64位系統(tǒng),Microsoft Visual Studio 2012

二、pthreads-w32 下載地址

??????? 我們這里下載最新版本pthreads-w32-2-9-1

??????? ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

??????? 下載后解壓,可以看到共有三個(gè)文件夾

????? ?

??????? 我們用到的主要是“Pre-built.2”這個(gè)文件夾下的三個(gè)文件夾,分別是動(dòng)態(tài)鏈接庫、頭文件、靜態(tài)鏈接庫

?????? ??

三、配置頭文件及靜態(tài)鏈接庫

??????? 這里有多種方式,我們這里只提到我們用到的一種,總之目的是讓我們建立的工程能夠找到對(duì)應(yīng)的頭文件、靜態(tài)庫文件,以及運(yùn)行時(shí)程序能夠找到動(dòng)態(tài)鏈接庫文件。

這里,我們直接把頭文件拷貝到Visual Studio的默認(rèn)路徑的頭文件中,即把include文件夾中的三個(gè)文件直接拷貝到Visual Studio安裝目錄下VC->include文件夾下,例如我將include中文件拷貝到的位置是

E:\Program Files\Microsoft Visual Studio 11.0\VC\include

這樣,我們就不必每次在項(xiàng)目用到時(shí)都配置一遍,特別是在Visual Studio2012 貌似不支持全局的頭文件配置時(shí)(不確定,如果誰找到了可以告訴我一聲),這種方式對(duì)于經(jīng)常會(huì)建一些小項(xiàng)目的人來說,相對(duì)節(jié)省時(shí)間。

??????? 同樣的辦法與原因,我們也可以把lib文件夾下的內(nèi)容拷貝到Visual Studio安裝目錄下默認(rèn)的lib尋找路徑中,即VC->lib中,例如我將lib文件夾下的x64與x86兩個(gè)文件直接拷貝到

??????? E:\Program Files\Microsoft Visual Studio 11.0\VC\lib

的下面。

四、配置動(dòng)態(tài)鏈接庫

?????? 和頭文件和靜態(tài)鏈接庫的配置方式相似,我們這里將dll文件夾的內(nèi)容放到我們程序能夠找到的位置,我們的方案是

把dll下的x64文件夾下的兩個(gè)文件,即pthreadGC2.dll與pthreadVC2.dll拷貝到C:\Windows\System32下(用于64位程序的運(yùn)行)

把dll下的x86文件夾下的五個(gè)文件,拷貝到C:\Windows\SysWOW64下(用于32位程序的運(yùn)行),注意一下,千萬不能將這些文件拷貝反位置,否則,程序運(yùn)行時(shí)會(huì)提示說找不到對(duì)應(yīng)的dll文件。這些在網(wǎng)上的很多文章中都被忽略掉了,所以我們特別提出。

五、運(yùn)行測(cè)試

?????? 完成以上配置之后,我們運(yùn)行一下測(cè)試程序,證明我們的配置完成了

  1. //main.cpp
  2. #include <stdio.h>
  3. #include <pthread.h>
  4. #include <assert.h>
  5. #pragma comment(lib,"x86/pthreadVC2.lib")
  6. void* Function_t(void* Param)
  7. {
  8. printf("我是線程! ");
  9. pthread_t myid = pthread_self();
  10. printf("線程ID=%d ", myid);
  11. return NULL;
  12. }
  13. int main()
  14. {
  15. pthread_t pid;
  16. pthread_attr_t attr;
  17. pthread_attr_init(&attr);
  18. pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
  19. pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
  20. pthread_create(&pid, &attr, Function_t, NULL);
  21. printf("======================================== ");
  22. getchar();
  23. pthread_attr_destroy(&attr);
  24. return 0;
  25. }
?????? 這里,我們需要注意的是我們的第6行代碼,我們需要在代碼中包含入靜態(tài)鏈接庫(注意,根據(jù)不同的編譯選項(xiàng),選擇x86還是x64,如果不相配,將無法鏈接完成)

#pragma comment(lib,"x86/pthreadVC2.lib")




總結(jié)

以上是生活随笔為你收集整理的在windows下配置pthread多线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。