演算法部署 執行緒同步

2021-10-10 03:30:53 字數 2524 閱讀 3774

但是下面**結構中,別的執行緒調喚醒本執行緒。

普通等待,乙個執行緒等待"條件變數的條件成立"而掛起,等待另一線程喚醒

int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
乙個執行緒傳送乙個訊號給另外乙個正在處於阻塞等待狀態的執行緒,使其脫離阻塞狀態

int pthread_cond_signal(pthread_cond_t *cond);
/*

*** data: 2020.10.29

*** author: xiaoqi wang

*** email: [email protected]

*/#ifndef mutext_h

#define mutext_h

#include class mutexlock

~mutexlock()

inline void lock()

inline void unlock()

pthread_mutex_t *get()

//巢狀類

class autolock

inline ~autolock()

private:

mutexlock& mlock;

};private:

friend class condition;

pthread_mutex_t mmutex;

};#endif // mutext_h

/*

*** data: 2020.10.29

*** author: xiaoqi wang

*** email: [email protected]

*/#ifndef condition_h

#define condition_h

#include #include "mutext.h"

class condition

~condition()

void wait(mutexlock& lock)

void signal()

void broadcast()

private:

pthread_cond_t mcondition;

};#endif // condition_h

/*

*** data: 2020.10.29

*** author: xiaoqi wang

*** email: [email protected]

*/#ifndef thread_h

#define thread_h

#include#include #include #include "mutext.h"

#include "condition.h"

class thread

virtual ~thread()

int join();

bool isrunning();

int start(void* thdata);

void settask();

void processtask();

static void* threadfun(void* thdata);

private:

pthread_t mthreadid;

volatile bool mrunflag;

mutexlock mmutexlock;

condition mcondition;

};#endif // thread_h

/*

*** data: 2020.10.29

*** author: xiaoqi wang

*** email: [email protected]

*/#include "thread.h"

int static setcount = 0;

//threaddata

struct threaddata

;//set task

void thread::settask()

return nullptr;

}//create the thread

int thread::start(void* udata)

return ret;

}//running flag

bool thread::isrunning()

//join

int thread::join()

return 0;

}

thread* pthread = new thread();

pthread->start(pthread);

pthread->settask();

演算法部分整理

1.pca主成分分析 主成分分析 principal component analysis,pca 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。無監督的學習,往特徵量最大的特徵向量的分銷商投影 pca的主要問題 沒有考慮類別號 進行主成...

排序演算法(部分)

快速排序會犧牲陣列中的乙個資料,所以實際的陣列長度,會比真實的資料多一,其中會將下面所說的標誌位賦值給arr 0 以犧牲陣列中arr 0 為例 快速排序主要思想 在陣列角標從left到right之間,取左邊第乙個數作為標誌位,將標誌位賦值給arr 0 然後分兩步迴圈判斷 這兩步順序不能混亂 1.從右...

深度學習異物檢測演算法 深度學習演算法部署專案 開源

目前筆者的開源工程處於建立的初期,很多模組還不完善,所以目前是乙個半開源的狀態,但是完全不影響二次開發和使用,介面比較簡單,感興趣可以嘗試一下。後續筆者會開源所有源 但是真心希望小夥伴們給一些點讚和關注,整個專案都是業餘時間做比較辛苦,如果沒人關注了不知道能堅持多久,先行謝謝了!人臉檢測 木木林 人...