linux 多线程面试题

linux-多线程--面试题 刚无意中看到MoreWindows博主秒杀多线程面试题(http://blog.youkuaiyun.com/column/details/killthreadseries.html),第一篇就有他收集的面试题。那我就用来检验一下自己学的怎么样吧。     前面的选择题那些跳过,直接看最后的编程题。 第三题(某培训机构的练习题): 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线 阅读详情

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC…依次递推。

  • 使用pthread_join进行阻塞,等对应的id线程运行结束再往下运行
#include <stdlib.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

pthread_mutex_t mutex;

void ThreadProc(void* arg)
{
	char *str = (char*)arg;
	printf("%s", str);
}
int main()
{
	pthread_t id;
	int i = 0;
	for (i = 0; i<10; i++)
	{
	    pthread_create(&id, NULL, (void*)ThreadProc, "A");
        pthread_join(id, NULL);	

    	pthread_create(&id, NULL, (void*)ThreadProc, "B");
        pthread_join(id, NULL);	

        pthread_create(&id, NULL, (void*)ThreadProc, "C");
        pthread_join(id, NULL);	

	}
	
	printf("\n");

	return 0;
}

  • 使用sem信号量PV互斥操作,来达到输出
#include <stdlib.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <semaphore.h>

sem_t sem1;
sem_t sem2;

void ThreadProc1(void* arg)
{
    char *str = (char*)arg;

    sem_wait(&sem1);
    
    printf("%s", str);
    sem_post(&sem2);
}
void ThreadProc2(void* arg)
{
    char *str = (char*)arg;
    sem_wait(&sem2);

    printf("%s", str);

}
void ThreadProc3(void* arg)
{
    char *str = (char*)arg;
    sem_post(&sem1);
    printf("%s", str);

}
int main()
{
  sem_init(&sem1, 0, 0);
  sem_init(&sem2, 0, 0);

  pthread_t id1, id2, id3;
  int i = 0;
  for (i = 0; i<10; i++)
  {
      pthread_create(&id1, NULL, (void*)ThreadProc1, "B");
      pthread_create(&id2, NULL, (void*)ThreadProc2, "C");
      pthread_create(&id3, NULL, (void*)ThreadProc3, "A");
      pthread_join(id2, NULL);

  }

  sem_destroy(&sem1);
  sem_destroy(&sem2);
  printf("\n");
  return 0;
}




Day449,linux多线程编程面试题 需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除。(img-751ViuT8-1711388455793)](img-klqSEFzD-1711388455794)](img-GYHunMxr-1711388455794)]当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了。当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了。#topic 在当前 broker 上的分区个数。 阅读详情

相关推荐

linux 多线程练习、面试题

/*********** 多线程 ****************** 主线程启动i=10个线程。无论启动顺序,执行顺序必须为 线程1、线程2、线程3、。。。 *****************************************/ #include #include #include #include #define DEBUG 0 pthread_mut

csdn89578289的专栏 1076

Linux进程线程相关面试题【备战春招秋招】

该文章适合有学习过Linux进程线程的朋友阅读,主要是针对本科应届生。收录了二十道近几年非常经典的进程线程相关面试题。

少生孩子多写代码 5072

电磁阀的符号解读

先数方框数量定“几位”(工作位置数 );数接口数量(P、A、R等 )定“几通”;看箭头、截断符号,结合常态位(弹簧侧/中间位 ),分析通电/断电时的通路切换;字母(P、A、R )、线圈(单/双电控 )、弹簧(复位 )辅助确认功能(如NO/NC对应常态通断 )。不同厂家符号细节(如编码、线圈画法 )有差异,遇到陌生符号,建议结合产品手册、品牌规范核对,就能精准读懂电磁阀的“语言”啦~

创新改变世界! 6894

多线程面试题

史上最强多线程面试47题(含答案),建议收藏 金九银十快到了,即将进入找工作的高峰期,最新整理的最全多线程并发面试47题和答案总结,希望对想进BAT的同学有帮助,由于篇幅较长,建议收藏后细看~ 1、并发编程三要素 (1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不会被其他操作打断,要么就全部都不执行 (2)可见性 可见性是指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果 (3)有序性 有序性,即程序的执行顺序按照代码的先后顺

m0_44968817的博客 3378

STM32开发工具链选型:MDK、CubeIDE、VSCode与IAR深度对比

嵌入式开发工具链是连接软件逻辑与硬件行为的核心枢纽,其选择直接影响代码可靠性、调试效率与量产稳定性。从编译器优化能力、调试协议支持(如ARM CoreSight、SWO)、硬件抽象层级(寄存器/LL/HAL)到跨平台构建能力,不同工具在实时性保障、静态分析合规性(如MISRA-C)、WCET可预测性及生态开放度上存在本质差异。尤其在STM32平台,Keil MDK凭借深度调试能力成为HardFault定位首选,STM32CubeIDE依托图形化配置加速外设初始化,而VSCode+PlatformIO则以LS

weixin_42602368的博客 429

大规模SoC芯片Hierarchical Flow Calibre LVS教程

大规模SoC芯片Hierarchical Flow Calibre物理验证LVS实现教程

weixin_37584728的博客 1200

关于多线程和多进程常见的一些面试题总结

题目1:“Linux中线程互斥/同步有哪几种方式” 线程间的同步方法大体可分为两类:用户模式和内核模式。 内核模式: 利用系统内核对象的单一性来进行同步,使用时需要切换内核态与用户态 用户模式就是不需要切换到内核态,只在用户态完成操作。 用户模式下的方法有:原子操作(例如一个单一的全局变量),临界区。 内核模式下的方法有:事件,信号量,互斥量。 生产者消费者 用到信号量 题目2:“同样可以实...

dreamispossible的博客 7386

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2481

Linux的多线程的一些面试题

1.控制输出数据 http://blog.youkuaiyun.com/chencheng126/article/details/44488603 2.主线程和子线程分别循环一定的次数 http://blog.youkuaiyun.com/chencheng126/article/details/44592003 3.生产者和消费者 http://blog.youkuaiyun.com/chench

Thinking 6954

别再硬编码了!Flowable工作流动态审批人配置全解析(Spring Boot集成版)

本文深入解析Flowable工作流在Spring Boot中的动态审批人配置技术,通过角色、部门等变量实现审批流程的灵活设计。文章详细介绍了架构原理、前端配置映射、动态候选组解析及查询优化方案,帮助企业提升审批流程的适应性和维护效率。

weixin_30919571的博客 135

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

Linux多线程面试题

前面的选择题那些跳过,直接看最后的编程题。 第三题(某培训机构的练习题): 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。 第四题(迅雷笔试题): 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的

fei的专栏 3342

基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发

PCL+QT开发

阁楼 2万+

多线程面试题c Linux,【GE多线程Linux面试题】面试问题:Linux C… - 看准网

这个是比较简单的例子,有助于初学多线程的人理解多线程的工作模式,后期会不断的跟进多线程的进阶应用等。储备知识:1.多线程是一种多任务并发的工作方式,在linux中线程包括内核线程和用户线程,内核线程有内核管理,不需要我们做更多的工作,我们这里将的是用户线程,线程统一由用户线程来切换。2.线程相关函数:int pthread_create(pthread_t id,pthread_attr_t *a...

weixin_39746552的博客 114

飞牛fnNAS搭建个人小账本

本文介绍了如何在飞牛NAS上部署ezBookkeeping个人记账应用。该开源工具支持多平台使用,具备双因素认证、多级分类等功能。文章详细讲解了Docker激活、镜像下载、容器部署等步骤,并展示了账户管理、交易记录等基础操作。同时指导用户通过ZeroTier实现远程访问,方便随时随地使用个人记账系统。该方案既保障了数据隐私,又提供了专业记账功能,适合对财务隐私敏感的用户。

dgnankai的专栏 782

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

linux--多线程--面试题

刚无意中看到MoreWindows博主秒杀多线程面试题(http://blog.youkuaiyun.com/column/details/killthreadseries.html),第一篇就有他收集的面试题。那我就用来检验一下自己学的怎么样吧。     前面的选择题那些跳过,直接看最后的编程题。 第三题(某培训机构的练习题): 子线程循环 10 次,接着主线程循环 100 次,接

Thinking 2422

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

mybatis-plus代码生成器,一键生成代码,linux多线程编程面试题

3.2.0 复制到项目中可以直接运行使用 import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.generator.AutoGenerator; im

m0_64205415的博客 119

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux中MySQL操作_linux了解mysql,Linux运维多线程面试题

模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。

867

多线程面试题linux,【多线程Linux面试题】面试问题:C++ thr… - 看准网

1,简介C++11中加入了头文件,此头文件主要声明了std::thread线程类。C++11的标准类std::thread对线程进行了封装,定义了C++11标准中的一些表示线程的类、用于互斥访问的类与方法等。应用C++11中的std::thread便于多线程程序的移值。std::thread类成员函数:(1)、get_id:获取线程ID,返回一个类型为std::thread::id的对象。(2)、...

weixin_42511396的博客 322

Java 实习模拟面试之信也科技:IO、多线程、集合、MySQL、Redis、HTTP、Linux 常见面试题解析

客户端发送SYN=1,随机生成初始序号 seq=x;服务端回复SYN=1和ACK=1(确认序号=x+1),随机生成初始序号 seq=y;客户端发送ACK=1(确认序号=y+1)。三次握手的目的是为了防止已失效的连接请求突然传到服务器,造成资源浪费。本次模拟面试涵盖了 Java 基础、MySQL、Redis、MQ、HTTP、Linux 等多个技术点,展示了作为 Java 实习生应具备的核心知识体系。建议在准备面试时,不仅要熟悉这些知识点,还要结合实际项目经验进行深入理解,提升综合解决问题的能力。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 1195
上一篇: linux 线程私有数据
下一篇: linux 多线程信号量(生产者消费者问题)
最后冰吻free
博客等级 码龄12年 121粉丝 371原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值