亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

Linux C++ 使用condition實現阻塞隊列的方法

2024-09-05 23:03:27
字體:
來源:轉載
供稿:網友

實例如下:

/* * BlockingQueue.h * * Created on: 2014年6月10日 *   Author:  */#ifndef BLOCKINGQUEUE_H_#define BLOCKINGQUEUE_H_#include <iostream>#include <pthread.h>using namespace std;//template <typename T >class BlockingQueue{public:	BlockingQueue();	BlockingQueue(int capacity);	~BlockingQueue();	bool push(int item);	int poll();private:	int capacity;	int* queue;	int head,tail;	pthread_mutex_t mutex;	pthread_cond_t notFull,notEmpty;};#endif /* BLOCKINGQUEUE_H_ */
/* * BlockingQueue.cpp * *  Created on: 2014年6月10日 *      Author:  */#include "../include/BlockingQueue.h"BlockingQueue::BlockingQueue(){    this->capacity = 10;    queue = new int[capacity];    head = 0,tail = 0;    pthread_mutex_init(&mutex,NULL);    pthread_cond_init(¬Full,NULL);    pthread_cond_init(¬Empty,NULL);}BlockingQueue::BlockingQueue(int capacity){    this->capacity = capacity;    queue = new int[capacity];    cout << "capacity " << sizeof(queue) << endl;    head = 0,tail = 0;    pthread_mutex_init(&mutex,NULL);    pthread_cond_init(¬Full,NULL);    pthread_cond_init(¬Empty,NULL);}BlockingQueue::~BlockingQueue(){    this->capacity = 0;    head = 0,tail = 0;    delete queue;    pthread_mutex_destroy(&mutex);    pthread_cond_destroy(¬Full);    pthread_cond_destroy(¬Empty);}bool BlockingQueue::push(int item){    pthread_mutex_lock(&mutex);    cout << "you want push " << item << endl;    while((head + 1) % capacity == tail)//is full    {        cout << "is full,wait..." << endl;        // push wait        pthread_cond_wait(¬Full,&mutex);        cout << "not full,unlock" << endl;    }    {        queue[head] = item;        head = (head + 1) % capacity;        cout << "push " << item << endl;        //wake up poll thread        pthread_cond_signal(¬Empty);        pthread_mutex_unlock(&mutex);        return true;    }}int BlockingQueue::poll(){    pthread_mutex_lock(&mutex);    int ret = 0;    while(head == tail) // is empty    {        cout << "is empty,wait..." << endl;        //poll wait        pthread_cond_wait(¬Empty,&mutex);        cout << "not empty,unlock..." << endl;    }    {        ret = queue[tail];        tail = (tail + 1) % capacity;        cout << "take " << ret << endl;        //wake up push thread        pthread_cond_signal(¬Full);        pthread_mutex_unlock(&mutex);        return ret;    }}
#include <iostream>#include "include/BlockingQueue.h"using namespace std;BlockingQueue queue(3);void* put(void *){	queue.push(1);	  queue.push(2);	  queue.push(3);	  queue.push(4);	  queue.push(5);	  return NULL;}void* take(void *){	queue.poll();	queue.poll();	queue.poll();	return NULL;}int main() {	pthread_t put1,take1;  pthread_create(&put1,NULL,put,0);  pthread_create(&take1,NULL,take,0);  void * retval;  pthread_join(put1,&retval);  pthread_join(take1,&retval);	return 0;}

以上就是小編為大家帶來的Linux C++ 使用condition實現阻塞隊列的方法全部內容了,希望大家多多支持VEVB武林網~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一区在线视频| 欧美日韩久久久久| 欧美精品www| 国产成人在线亚洲欧美| 欧美午夜久久久| 日韩高清不卡av| 欧美精品videos| 国产mv免费观看入口亚洲| 欧美激情中文字幕乱码免费| 中文字幕日韩欧美| 亚洲国产精品字幕| 日韩欧美国产中文字幕| 美女久久久久久久| 国产精品久久久av| 亲子乱一区二区三区电影| 亚洲欧美福利视频| 亚洲第一福利网站| 日韩av在线一区| 亚洲精品美女久久| 91久久久久久久久久久久久| 亚洲少妇激情视频| 亚洲精选在线观看| 91在线无精精品一区二区| 色妞在线综合亚洲欧美| 日韩中文字在线| 亚洲第一区中文字幕| 78m国产成人精品视频| 日韩欧美亚洲综合| 国产精品香蕉在线观看| 亚洲精品国产精品乱码不99按摩| 日韩中文字幕精品视频| 91久久精品久久国产性色也91| 在线国产精品视频| 伊人久久男人天堂| 国产91精品黑色丝袜高跟鞋| 91久热免费在线视频| 丝袜亚洲欧美日韩综合| 国内成人精品视频| 国产成人中文字幕| 日韩中文字幕免费| 欧美色xxxx| 久久偷看各类女兵18女厕嘘嘘| 欧美精品videos性欧美| 欧美电影免费观看高清| 伊人一区二区三区久久精品| 成人中文字幕+乱码+中文字幕| 国外成人免费在线播放| 性色av香蕉一区二区| 色综合久久悠悠| 亚洲综合自拍一区| 91精品国产自产在线观看永久| 91福利视频网| 国产精品毛片a∨一区二区三区|国| 亚洲乱码一区av黑人高潮| 91精品国产91久久久久久不卡| 亚洲国产精品福利| 在线色欧美三级视频| 色偷偷av一区二区三区| 国产欧美精品在线播放| 91久久精品国产91久久性色| 亚洲福利视频免费观看| 成人黄色免费网站在线观看| 欧美国产日本在线| 热99精品只有里视频精品| 久久精品影视伊人网| 国产精品久久久久久五月尺| 91av成人在线| 影音先锋日韩有码| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产精彩中文乱码av在线播放| 亚洲欧美日韩综合| 欧美午夜精品久久久久久人妖| 国产91在线播放九色快色| 国产日韩av在线| 日韩欧美第一页| 日日骚久久av| 亚洲欧美中文另类| 国模吧一区二区| 69视频在线免费观看| 日av在线播放中文不卡| 国精产品一区一区三区有限在线| 日韩av电影手机在线| 久久久久久久亚洲精品| 91亚洲国产成人精品性色| 久久久天堂国产精品女人| 亚洲国产中文字幕在线观看| 高清一区二区三区四区五区| 欧美极品欧美精品欧美视频| 国产精品18久久久久久首页狼| 久久91精品国产| 国产精品视频xxxx| 欧美性极品xxxx做受| 成人h片在线播放免费网站| 色婷婷久久一区二区| 日韩中文字幕网址| 日韩中文字幕在线| 亚洲欧美www| 亚洲人成电影网站色| 91亚洲精品在线| 国模视频一区二区三区| 精品日本美女福利在线观看| 欧美另类极品videosbestfree| 色777狠狠综合秋免鲁丝| 亚洲在线免费视频| 国产精品夜色7777狼人| 日韩精品丝袜在线| 午夜欧美不卡精品aaaaa| 一区二区三区四区视频| 国产精品美女无圣光视频| 亚洲欧美日韩国产精品| 国产精品天天狠天天看| 91精品国产91久久久久| 亚洲香蕉在线观看| 国产裸体写真av一区二区| 最近2019中文字幕大全第二页| 久久这里有精品视频| 欧美孕妇毛茸茸xxxx| 亚洲免费一在线| 久久久久久亚洲| 久久久国产视频91| 日韩免费在线观看视频| 国产精品电影观看| 欧美日韩美女视频| 欧美一区二区大胆人体摄影专业网站| 国产婷婷成人久久av免费高清| 欧美精品手机在线| 成人黄在线观看| 久久久久国产视频| 国产精品一区二区久久久| 精品亚洲精品福利线在观看| 国产亚洲免费的视频看| 国产91精品久| 欧美激情亚洲国产| 77777少妇光屁股久久一区| 国产精品久久久久久久久影视| 超碰91人人草人人干| 北条麻妃99精品青青久久| 亚洲国产精品久久久久久| 久久国产精品免费视频| 久久露脸国产精品| 亚洲色图狂野欧美| 国产成人精品日本亚洲| 永久免费精品影视网站| 69**夜色精品国产69乱| 日韩电影大全免费观看2023年上| 亚洲精品456在线播放狼人| 色www亚洲国产张柏芝| 国产精品免费看久久久香蕉| 亚洲天堂网在线观看| 久久久久久国产精品美女| 日韩高清中文字幕| 日韩国产精品一区| 国产成人精品免高潮费视频| 欧美日韩国产成人| 国产日韩欧美在线视频观看| 91在线高清免费观看| 91精品国产综合久久香蕉最新版| 日韩电视剧在线观看免费网站| 欧美激情视频在线观看| 这里只有精品视频在线| 伦伦影院午夜日韩欧美限制| 日韩免费在线电影| 欧美日韩亚洲视频| 欧美精品一本久久男人的天堂|