首页 > 其他分享 >苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接

苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接

时间:2023-11-17 14:47:23浏览次数:30  
标签:截图 void sh num NUM sem NULL 问答 苏格拉底










#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#include<semaphore.h>

#include<pthread.h>

#define msleep(x) usleep(x*1000)

#define PRODUCT_SPEED 3 //生产速度

#define CONSUM_SPEED 1 //消费速度

#define INIT_NUM 3 //仓库原有产品数

#define TOTAL_NUM 10 //仓库容量

sem_t p_sem, c_sem, sh_sem;
int num=INIT_NUM;

void product(void) //生产产品
{
sleep(PRODUCT_SPEED);
}

int add_to_lib() //添加产品到仓库
{
num++;//仓库中的产品增加一个
msleep(500);
return num;
}

void consum() //消费
{
sleep(CONSUM_SPEED);
}

int sub_from_lib() //从仓库中取出产品
{
num--; //仓库中的产品数量减一
msleep(500);
return num;
}

void *productor(void *arg) //生产者线程
{
while(1)
{
sem_wait(&p_sem);//生产信号量减一
product();// 生产延时
sem_wait(&sh_sem);//这个信号量是用来互斥的
printf("push into! tatol_num=%d\n",add_to_lib());
sem_post(&sh_sem);
sem_post(&c_sem); //消费信号量加一
}
}

void *consumer(void *arg) //消费者线程
{
while(1)
{

    sem_wait(&c_sem); //消费者信号量减一    
    sem_wait(&sh_sem);
    printf("pop out! tatol_num=%d\n",sub_from_lib());
    sem_post(&sh_sem);        
    sem_post(&p_sem);//生产者信号量加一    
    consum();//消费延时
    
    
    
}

}

int main()
{
pthread_t tid1,tid2;
sem_init(&p_sem,0,TOTAL_NUM-INIT_NUM);

sem_init(&c_sem,0,INIT_NUM);

sem_init(&sh_sem,0,1);

pthread_create(&tid1,NULL,productor,NULL);
pthread_create(&tid2,NULL,consumer,NULL);

pthread_join(tid1,NULL);
pthread_join(tid2,NULL);
return 0;

}

标签:截图,void,sh,num,NUM,sem,NULL,问答,苏格拉底
From: https://www.cnblogs.com/sjd-sr/p/17838697.html

相关文章

  • 探索人工智能的世界:构建智能问答系统之环境篇
    引言在之前的一篇文章中,我们已经对项目所需的知识点进行了简单的了解。今天,我们将开始搭建整个项目的环境。在接下来的文章中,我们将详细介绍如何配置项目所需的各种工具和环境,以确保项目的顺利进行。部署接下来,你可能需要多次重启电脑来确保环境变量的生效。这是必要的,因为在进......
  • 探索人工智能的世界:构建智能问答系统之前置篇
    引言在开始开发之前,我们首先要了解我们将会接触到的编程语言和组件。我本身是一名Java开发者,虽然也有接触过C、C++和PHP开发语言,但在工作中使用的并不多。因此,为了本次开发,我们选择了Python作为开发语言。大家都是从零开始,只要你有编程知识,就可以和我一起学习。回顾一下我们需要......
  • WorkPlus AI助理知识问答机器人,助力企业级私有化AI构建
    ChatGPT以及其他大语言模型展现了令人惊叹的广博知识、语义理解能力与创造能力。它们能够在会话中承认自身错误并进行改正,还能进行一定程度的逻辑推理,具备多语种翻译与多语言编程等"超能力",可胜任多种自然语言处理任务。然而,许多大型传统企业出于数据安全等方面的考虑,无法使用公有......
  • 贷款额度生成器,支持信用卡APP版,虚拟截图E4a开发,仅提供源码
    闲着无聊用易安卓开发了一个额度生成器,原理非常简单,就网上找了一个模版,加了几个编辑框,用PS消除了原有的信息内容,在上面加了一些标签,实现用户输入确定按钮后改变图片上的标签内容,下面是框架图:框架界面图:  生成框架图:  代码:【e4a】:==================================......
  • 结合大语言模型与亚马逊云科技基础服务,构建知识库智能搜索问答方案
     背景 本篇主要介绍LangChain和开源大语言模型集成,结合亚马逊云科技的云基础服务,构建基于企业知识库的智能搜索问答方案。  LangChain介绍 LangChain是一个利用大语言模型的能力开发各种下游应用的开源框架,它的核心理念是为各种大语言模型应用实现通用的接口,简化大语言模型应......
  • 原生JS实现视频截图
    视频截图效果预览利用Canvas进行截图要用原生js实现视频截图,可以利用canvas的绘图功能ctx.drawImage,只需要获取到视频标签,就可以通过drawImage把视频当前帧图像绘制在canvas画布上。constvideo=document.querySelector('video')constcanvas=document.createElement('c......
  • 银行转账p图手机软件,实现回执单截图生成,用Swing或JavaFX实现
    其实总体用了很少的代码,就是模版图+框架代码实现,模版也是网上的,非常多总体实现的原理还是绘图功能,捕捉用户输入。用户界面(UI):我们可以使用Swing或JavaFX来创建一个窗口界面,允许用户输入所需的信息。数据处理:应用程序将需要处理用户输入,并将这些信息转换成回执单的格式。生......
  • 银行支付凭证截图生成器在线,工商邮政农业招商建设,画板+透明标签+图片框
    用易语言设计了一个非常牛X的截图生成器,娱乐使用哈,软件我在这里也不会分享,模版网上找的,百度图库搜到的,上面的LOGO用的是一个在线生成器,然后标签用的黑月透明标签,加一个通用对话框读取图片文件夹到编辑框,自动写入到Logo图片框,参数输入框的编辑框对应着模版上指定信息的透明标签,单选......
  • 告别屏幕截图!教你如何高效下载instagram原图到手机!超清原分辨率!
    Ins的图片真的都好好看呀!每一张拿来收藏做壁纸做头像都是杠杠的!而且不瞒大家,我最近淘到了一个好宝贝,让我可以想存哪张就存哪张,丝毫不带犹豫的那种~该宝贝就是——【存了个图】app,不管是安卓还是苹果的小伙伴们,只需在手机自带的应用商店就能搜索下载哦! 打开IG找到喜爱的图片后点击......
  • 【RAG问答相关】复杂知识库问答综述(下)
    前言大模型落地应用过程中,一般形式还是问答形式,无论是人机对话还是机机对话,都是靠问答来解决一系列问题。无论是要求大模型给出具体的专业化知识,还是要求大模型进行某项作业的开展,都是以问题(指令其实也是一种特殊的问题)的形式进行。所以在RAG中,如何将问题转化为大模型能够理解的......