爱编程的小didi 2022-07-17 14:11 采纳率: 20%
浏览 19

标准输入缓冲区是否是互斥访问的

问题遇到的现象和发生背景

创建两个线程,从标准输入获得字符串。这两个线程会交替获得字符串。请问这种情况的 是因为程序是互斥的访问标准输入缓冲的么?

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <time.h>
#include <windows.h>

void *InputEventTreadFunction(void *a)
{
    
    while(1)
    {
        char c[10];
        scanf("%s", c);
        printf("%d:%s\n", *(int *)a, c);
    }
    return NULL;
}

int main()
{
    int id1 = 1;
    int id2 = 2;
    pthread_t tTreadID1;
    pthread_t tTreadID2;
   
    int er = pthread_create(&tTreadID1, NULL, InputEventTreadFunction, &id1);
    er = pthread_create(&tTreadID2, NULL, InputEventTreadFunction, &id2);
    void* ptr;
    pthread_join(tTreadID1, &ptr);    
    printf("tTreadID1\n");
    pthread_join(tTreadID2, &ptr);    
    printf("tTreadID2\n");

    return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • mzhan017 2022-07-18 08:38
    关注

    有没有试过三个线程

    评论

报告相同问题?

问题事件

  • 创建了问题 7月17日

悬赏问题

  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了