ubuntu下C++多執行緒程式設計(cmake生成makefile)
最近做專案要用到多執行緒的程式設計,又要用到opencv因此採用cmake生成makefile然後進行編譯的方法比較簡單。這裡給出多執行緒的簡單例項。
主函式非常簡單:
#include <iostream> #include <pthread.h> using namespace std; #define NUM_THREADS 2 class Hello { public: static void* say_hello( void* args ) { cout << "hello...123" << endl; } }; int main() { pthread_t tids[NUM_THREADS]; for( int i = 0; i < NUM_THREADS; ++i ) { int ret = pthread_create( &tids[i], NULL, Hello::say_hello, NULL ); if( ret != 0 ) { cout << "pthread_create error:error_code" << ret << endl; } } pthread_exit( NULL ); }
CmakeList檔案如下(這裡沒有包含opencv 的相關部分)
project(test)
add_executable(test main.cpp)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(test Threads::Threads)
cmake_minimum_required(VERSION 2.8)
轉載請註明:
http://write.blog.csdn.net/postedit/51065789
Powered by Xiaoliang Wang
Beijing Institute of Technology-The University of British Columbia
China
相關推薦
ubuntu下C++多執行緒程式設計(cmake生成makefile)
最近做專案要用到多執行緒的程式設計,又要用到opencv因此採用cmake生成makefile然後進行編譯的方法比較簡單。這裡給出多執行緒的簡單例項。 主函式非常簡單: #include <iostream> #include <pthread.h&g
樹莓派3B Linux下C++多執行緒程式設計
下面的程式碼手動建立了兩個執行緒,一個執行緒是讀取串列埠的資料,另一個執行緒是通過UDP來讀取網路通訊收到的資料。加上main函式的執行緒,一共三個執行緒。 先簡單講一下多執行緒的建立, pthread_t serial; int ser =
C++——多執行緒程式設計(二)std::mutex 執行緒同步、解決資源競爭問題
前言 執行緒同步 這裡的“同”不是同時、一起執行的意思,而是指協同、協助、互相配合。執行緒同步是指多個執行緒協同步調,按預定的先後次序進行執行。 執行緒A和B一塊配合,A執行到一定程度時要依靠B的某個結果,於是停下來,示意B執行;B依言執行,再將結果給A;
C#多執行緒程式設計(一)程序與執行緒
一、 程序 簡單來說,程序是對資源的抽象,是資源的容器,在傳統作業系統中,程序是資源分配的基本單位,而且是執行的基本單位,程序支援併發執行,因為每個程序有獨立的資料,獨立的堆疊空間。一個程式想要併發執行,開多個程序即可。
(Linux多執行緒程式設計(不限Linux))多執行緒操作
——本文一個例子展開,介紹Linux下面執行緒的操作、多執行緒的同步和互斥。 前言 執行緒?為什麼有了程序還需要執行緒呢,他們有什麼區別?使用執行緒有什麼優勢呢?還有多執行緒程式設計的一些細節問題,如執行緒之間怎樣同步、互斥,這些東西將在本文中介紹。我在某QQ群裡見到這樣一道面試題: 是否熟悉POS
python 多執行緒程式設計(一個經典例子)
python 多執行緒經典案例(摘自《python核心程式設計》) 使用佇列的資料結構,生產者生產商品,消費者選取商品,且時間均不固定 from random import randint from time import sleep from queu
Linux下的多執行緒程式設計二(執行緒的同步與互斥)
一、什麼叫做執行緒的同步與互斥?為什麼需要同步與互斥? 1、同步與互斥 互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。 同步:是指在互斥的基礎上(大多數情況),通過其它機制
linux環境下ssl多執行緒程式設計例項(整理)
服務端: #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <errno.h> #ifndef _WIN32 #include <
c++11多執行緒程式設計(二):joining和detaching 執行緒
Joining執行緒 執行緒一旦啟動,另一個執行緒可以通過呼叫std::thread物件上呼叫join()函式等待這個執行緒執行完畢std::thread th(funcPtr); th.join(); 看一個例子主執行緒啟動10個工作執行緒,啟動完畢後,main函式等待
C++多執行緒程式設計回顧(1)(C11)
1、執行緒join&detach,程式碼示例如下(實測,可用): #include <iostream> #include <thread> #include <windows.h>//列印執行緒號所引,僅限Wi
c++11多執行緒程式設計(四):資料共享和競爭條件
在多執行緒環境中,執行緒間的資料共享很簡單,但是在程式中這種簡單的資料共享可能會引起問題,其中一種便是競爭條件。什麼是競爭條件? 競賽條件是發生在多執行緒應用程式中的一種bug 當兩個或多個執行緒並行執行一組操作,訪問相同的記憶體位置,此時,它們中的一個或多個執行緒會修改記
c++11多執行緒程式設計(一):建立執行緒的三種方法
c++11執行緒庫原始的c++標準僅支援單執行緒程式設計,新的c++標準(c++11或c++0x)於2011年釋出,引入了新的執行緒庫。 編譯器要求 Linux: gcc 4.8.1 (完全併發支援) Windows: Visual Studio 2012 and Min
C#多執行緒基礎(多執行緒的優先順序、狀態、同步)
一、關於多執行緒的優先順序、狀態、同步指令碼如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System
簡單的Linux C++多執行緒CLOCK(時鐘)類
剛剛加入CSDN部落格,初來乍到也不知道寫什麼,所以來分享一個自己以前學C++的時候寫的第一個類,一個關於時鐘的簡單的Linux多執行緒CLOCK(時鐘)類: /***********************************************
Linux作業系統下的多執行緒程式設計詳細解析----條件變數pthread_cond_t
在多執行緒程式設計下,常常出現A執行緒要等待B執行緒條件完成後再繼續進行,這裡等待方式有兩種: 1.使用鎖+輪詢 使用這種方法可以很簡單的實現,但是會有一定的效能消耗,其還有一個點要好好把握,就是一次輪詢沒有結果後相隔多久進行下一次的輪詢,間隔時間太短,消耗
理解c++多執行緒程式設計
多執行緒程式設計 本篇博文不是主要介紹互斥鎖之類的,是理解執行緒的執行,以便以後有把握的寫多執行緒程式。 #include<thread> #include<iostream&g
Linux c多執行緒程式設計的4個例項
在主流的作業系統中,多工一般都提供了程序和執行緒兩種實現方式,程序享有獨立的程序空間,而執行緒相對於程序來說是一種更加輕量級的多工並行,多執行緒之間一般都是共享所在程序的記憶體空間的。 Linux也不例外,雖然從核心的角度來看,執行緒體現為一種對程序的"克隆"(clon
Linux學習之多執行緒程式設計(二)
言之者無罪,聞之者足以戒。 ——《詩序》 (二)、執行緒的基本控制 1、終止程序: 如果程序中的任意一個程序呼叫了exit、_exit、_Exit,那麼整個程序就會終止 普通的單個程序有以下3種退出方式,這樣不會終止程序: (1)從啟動例程中返回,返回值是執行緒的退
Linux學習之多執行緒程式設計(四)
言之者無罪,聞之者足以戒。 ——《詩序》 三、Linux執行緒的高階控制 1、一次性初始化 有些事需要且只能執行一次(比如互斥量初始化)。通常當初始化應用程式時,可以比較容易地將其放在main函式中。但當你寫一個庫函式時,就不能在main裡面初始化了,你可以用靜態初始化
Linux學習之多執行緒程式設計(六)
言之者無罪,聞之者足以戒。 ——《詩序》 4、執行緒私有屬性 應用程式設計中有必要提供一種變數,使得多個函式多個執行緒都可以訪問這個變數(看起來是個全域性變數),但是執行緒對這個變數的訪問都不會彼此產生影響(貌似不是全域性變數哦),但是你需要這樣的資料,比如errno。那