青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Jiwu Bu

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  32 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks
使用信號量sem_t實現生產者與消費者實例。主要用到以下幾個函數:
sem_init()
sem_destroy()
sem_post()
sem_wait()

//g++ -o semaphore semaphore.cpp  -lpthread
#include <semaphore.h>
#include 
<errno.h>
#include 
<unistd.h>
#include 
<pthread.h>
#include 
<stdlib.h>
#include 
<stdio.h>
#include 
<string.h>
#include 
"ThreadMutex.h"

#define MAXSIZE 10

sem_t g_sem_max;
sem_t g_sem_zero;

CThreadMutex g_mutex;

int g_count = 0;

int sem_wait_i(sem_t* psem)
{
    
int rv = 0;
   
    
while ( 0 != ( rv = sem_wait(psem) ) )
    {
        
if ( errno == EINTR )
        {
            
continue;
        }
        
else
        {
            printf(
"sem_wait %s\n", strerror(errno) );
            
break;
        }
    }

    
return rv;
}

void* producer_thread(void* Parameter)
{
    
whiletrue )
    {
        sleep(
2);

        
if( sem_wait_i(&g_sem_max) != 0 )
        {
            
break;
        }

        g_mutex.Lock();

        g_count
++;

        printf(
"Producer=%d\n", g_count);

        sem_post(
&g_sem_zero);

        g_mutex.UnLock();
    }

    
return NULL;
}

void* consumer_thread(void* Parameter)
{
    
whiletrue )
    {
        sleep(
3);

        
if( sem_wait_i(&g_sem_zero) != 0 )
        {
            
break;
        }

        g_mutex.Lock();

        g_count
--;

        printf(
"Consumer=%d\n", g_count);

        sem_post(
&g_sem_max);

        g_mutex.UnLock();
    }

    
return NULL;
}

int main(int argc, char* argv[])
{
    
if ( sem_init(&g_sem_zero, 00!= 0 )
    {
        printf(
"sem_init %s\n", strerror(errno) );

        
return -1;
    }

    
if ( sem_init(&g_sem_max, 0, MAXSIZE) != 0 )
    {
        printf(
"sem_init %s\n", strerror(errno) );

        
return -1;
    }

    pthread_t pro_thread;
    pthread_t sum_thread;

    
if ( pthread_create( &sum_thread, NULL, consumer_thread, NULL) != 0 )
    {
        printf(
"pthread_create%s\n", strerror(errno) );

        
return -1;
    }

    
if ( pthread_create( &pro_thread, NULL, producer_thread, NULL) != 0 )
    {
        printf(
"pthread_create%s\n", strerror(errno) );

        
return -1;
    }
    
    
if ( pthread_join(pro_thread, NULL) != 0 )
    {
        printf(
"pthread_join %s\n", strerror(errno) );

        
return -1;
    }

    
if ( pthread_join(sum_thread, NULL) != 0 )
    {
        printf(
"pthread_join %s\n", strerror(errno) );

        
return -1;
    }

    sem_destroy(
&g_sem_zero);
    sem_destroy(
&g_sem_max);

    
return 0;
}
http://www.shnenglu.com/Files/bujiwu/semaphore.rar

posted on 2009-11-17 13:28 bujiwu 閱讀(685) 評論(0)  編輯 收藏 引用 所屬分類: Linux
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区91| 欧美激情1区2区3区| 亚洲天堂av在线免费| 欧美日韩一区二区免费在线观看| 亚洲精品麻豆| 亚洲毛片一区二区| 欧美日韩在线播放三区| 亚洲欧美韩国| 香蕉久久夜色精品国产| 尤物网精品视频| 亚洲高清自拍| 国产精品福利影院| 久久久久成人精品免费播放动漫| 性色一区二区| 亚洲精品看片| 亚洲欧美国产视频| 一区二区三区在线不卡| 亚洲国产一区二区视频| 欧美性事在线| 男人的天堂成人在线| 欧美精品一区二区视频| 亚洲欧美日韩国产中文在线| 欧美一级久久| 一区二区三区免费观看| 午夜视频在线观看一区二区三区| 亚洲风情在线资源站| 日韩视频国产视频| 精品不卡视频| 中日韩美女免费视频网站在线观看| 国产亚洲欧美一区在线观看 | 欧美性大战久久久久| 欧美自拍偷拍| 欧美久久精品午夜青青大伊人| 午夜精品久久久久久| 老司机免费视频一区二区| 亚洲一区二区精品视频| 蜜月aⅴ免费一区二区三区| 亚洲欧美欧美一区二区三区| 蜜桃久久av| 欧美有码在线观看视频| 欧美日本国产在线| 欧美成人在线影院| 国产欧美视频一区二区| 日韩亚洲精品视频| 亚洲黄色影片| 久久精品在线视频| 欧美在线免费播放| 欧美性猛交99久久久久99按摩| 蜜桃久久av一区| 国产亚洲美州欧州综合国| 亚洲免费高清视频| 亚洲精品免费电影| 免费高清在线一区| 免费观看在线综合| 一区二区三区在线视频播放| 亚洲你懂的在线视频| 一区二区三区四区蜜桃| 欧美激情一区二区三区不卡| 母乳一区在线观看| 亚洲福利视频一区二区| 久久er99精品| 久久久久久久一区二区| 国产精品亚洲人在线观看| 一本色道**综合亚洲精品蜜桃冫| 狠狠色狠狠色综合日日小说| 亚洲一区二区成人在线观看| 亚洲欧美日韩国产综合| 国产精品日韩一区| 亚洲一区二区视频| 欧美一级欧美一级在线播放| 国产精品亚洲综合| 欧美一区二区三区免费在线看| 欧美在线观看视频一区二区| 国产毛片一区| 久久精品毛片| 亚洲国产成人在线播放| 日韩视频在线免费| 欧美午夜电影网| 亚洲欧美日韩国产一区二区| 久久成人综合视频| 黑人中文字幕一区二区三区 | 日韩一区二区精品| 亚洲一区二区三区四区五区午夜 | 国产精品久久久999| 亚洲欧美国产一区二区三区| 久久av资源网| 亚洲第一色在线| 欧美乱人伦中文字幕在线| 日韩视频免费| 久久九九精品99国产精品| 伊人成年综合电影网| 欧美激情第1页| 亚洲一级高清| 蜜臀av性久久久久蜜臀aⅴ四虎| 91久久精品美女| 欧美日韩在线播放一区二区| 亚洲欧美日韩精品久久亚洲区| 母乳一区在线观看| 亚洲视频成人| 国内精品福利| 欧美日韩亚洲国产一区| 一本色道久久综合一区| 久久成人精品视频| 亚洲精品国产精品国产自| 国产精品久久中文| 久热精品视频在线观看一区| 中文av字幕一区| 欧美大片在线观看一区二区| 亚洲一区二区免费视频| 在线日本成人| 国产精品日韩欧美一区二区三区 | 欧美日韩免费视频| 久久精品国产亚洲5555| 一本色道久久综合狠狠躁篇怎么玩 | 久久人人九九| 亚洲一区二三| 亚洲国产天堂久久综合网| 久久精品一区二区三区四区| 妖精视频成人观看www| 一区二区亚洲| 国产精品自在欧美一区| 欧美另类69精品久久久久9999| 亚洲小说区图片区| 亚洲日韩欧美视频| 欧美激情亚洲精品| 久久综合给合久久狠狠狠97色69| 亚洲一区二区三区涩| 亚洲人成网站999久久久综合| 国产一区二区主播在线| 国产精品女人久久久久久| 欧美日本不卡| 欧美国产专区| 麻豆freexxxx性91精品| 久久精品日产第一区二区三区| 亚洲一区一卡| 亚洲性线免费观看视频成熟| 一区二区日韩伦理片| 日韩一级视频免费观看在线| 亚洲电影天堂av| 亚洲二区在线视频| 亚洲电影免费观看高清完整版| 嫩草国产精品入口| 蜜臀va亚洲va欧美va天堂| 久久婷婷丁香| 久久亚洲私人国产精品va媚药| 久久成人综合视频| 欧美一级一区| 先锋影音网一区二区| 欧美一区高清| 欧美在线观看日本一区| 久久精品国产在热久久| 欧美一二区视频| 欧美一区二区啪啪| 久久精品国产99国产精品| 久久精品欧美日韩精品| 久久成人精品| 久久久国产精彩视频美女艺术照福利 | 久久大综合网| 久久国产婷婷国产香蕉| 久久九九国产| 久久久精品国产免大香伊| 久久九九电影| 老司机亚洲精品| 欧美经典一区二区| 欧美色视频日本高清在线观看| 欧美精品激情blacked18| 欧美片在线观看| 国产精品男gay被猛男狂揉视频| 国产精品白丝jk黑袜喷水| 国产精品video| 国内精品久久久久久久影视蜜臀| 亚洲国产精品成人| 99国产精品久久久久久久成人热| 中日韩美女免费视频网址在线观看 | 日韩午夜电影在线观看| 亚洲欧美乱综合| 久热成人在线视频| 亚洲激情成人网| 先锋影音一区二区三区| 免费观看一区| 国产精品日韩欧美一区二区| 影音先锋久久| 亚洲在线一区二区三区| 美女视频黄 久久| 99riav1国产精品视频| 久久国产精品色婷婷| 欧美日本中文| 国产综合久久久久影院| 国产精品99久久久久久有的能看| 久久精品国产第一区二区三区最新章节| 男人的天堂亚洲| 亚洲一线二线三线久久久| 免费亚洲电影在线观看| 国产毛片一区二区| 一区二区三区视频在线播放| 久久亚洲国产成人| 亚洲午夜伦理| 欧美日韩国产精品专区| 亚洲第一区在线观看| 久久精品国产v日韩v亚洲|