From 37a7bd95042c19d7334b099d50ac6dc8e07e4b4e Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 07 七月 2020 16:40:51 +0800 Subject: [PATCH] update --- test/multiple_queue_consumer.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) diff --git a/test/consumer.c b/test/multiple_queue_consumer.c similarity index 71% rename from test/consumer.c rename to test/multiple_queue_consumer.c index 6542b27..7281e44 100644 --- a/test/consumer.c +++ b/test/multiple_queue_consumer.c @@ -2,9 +2,12 @@ using namespace std; +#define NTHREADS 4 +struct Targ targs[NTHREADS]; +size_t qsize = 16; void sigint_handler(int sig) { - destroy(); + mm_destroy(); exit(0); } @@ -14,14 +17,13 @@ void* run (void *arg) { struct Targ * targ = (struct Targ * )arg; // SArrayLockFreeQueue<struct Item> *queue = QFactory::createArrayLockFreeQueue<struct Item> (targ->key, 10); - SLinkedLockFreeQueue<struct Item> *queue = QFactory::createLinkedLockFreeQueue<struct Item> (targ->key, 10); - + LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (targ->key, qsize); struct Item item; struct timespec timeout = {5, 0}; int i = 0; - while((queue->remove_timeout(item, &timeout)) ) { - // cout << "鍑洪槦锛�" << item.pic << ", " << item.info << endl; + while((queue->pop_timeout(item, &timeout)) ) { + printf("consumer(%d) 鍑洪槦锛� {%d, %d}\n", targ->key, item.pic, item.info); // cout << item.pic << endl; i++; @@ -55,12 +57,12 @@ if(pthread_join(tids[i], &res[i])!=0) { perror("productor pthread_join"); } else { - fprintf(stderr, "cosumer %d 璇诲彇浜� %ld 鏉℃暟鎹甛n", i, (long)res[i]); + fprintf(stderr, "cosumer(%d) 璇诲彇浜� %ld 鏉℃暟鎹甛n", i, (long)res[i]); } } - destroy(); + mm_destroy(); cerr << "cosumer quit" << endl; exit(EXIT_SUCCESS); } \ No newline at end of file -- Gitblit v1.8.0