当前位置: 首页 > news >正文

juc面试题

一:线程同步的方式有哪些?

线程同步指的就是让多个线程之间按照顺序访问同一个共享资源

  1. synchronized:Java中最基本的线程同步机制,可以修饰代码块或方法,保证同一时间只有一个线程访问该代码块或方法,其他线程需要等待锁的释放。
  2. ReentrantLock:可以保证同一时间只有一个线程访问共享资源,但是更灵活,支持公平锁、可中断锁、多个条件变量等功能。
  3. Semaphore:允许多个线程同时访问共享资源,但是限制访问的线程数量。可以用于控制并发访问的线程数量,避免系统资源被过度占用。
  4. CountDownLatch:允许一个或多个线程等待其他线程执行完毕之后再执行,可以用于线程之间的协调和通信。
  5. CyclicBarrier类:允许多个线程在一个栅栏处等待,直到所有线程都到达栅栏位置之后,才会继续执行。

二:Semaphore、CountDownLatch、CyclicBarrier区别?

它们都可以用来协调多个线程之间的执行。

  1. Semaphore是一个计数信号量,它允许多个线程同时访问共享资源,并通过计数器来控制访问数量。通常用来实现一个线程需要等待获取一个许可证才能访问共享资源,或者需要释放一个许可证才能完成操作的操作。
  2. CountDownLatch是一个计数器,通常用来实现一个线程等待其他多个线程完成操作之后再继续执行的操作。
  3. CyclicBarrier是一个同步屏障,通常用来实现多个线程在同一个屏障处等待,然后再一起继续执行的操作。

相关文章:

  • Development靶机通关笔记
  • 【TKDE25】Large-Scale Clustering With Anchor-BasedConstrained Laplacian Rank
  • 数据的获取与读取篇---常见的数据格式JSON
  • JVM(Java虚拟机)
  • 从0到上线:微服务架构下的全栈开发实战指南
  • STM32 定时器输出比较深度解析:从原理到电机控制应用 (详解)
  • PostGIS实现栅格数据转二进制应用实践【ST_AsBinary】
  • Nat Rev Genet | 如果DNA序列能“说话”?深度学习S2E(序列2表达)模型正在听懂基因组的调控秘密!
  • 数字图像处理:基于 hough 变换的图像边缘提取
  • iOS知识复习
  • vue3+ts 安装tailwindcss样式库
  • uniapp判断ios或Android定位是否开启并跳转到系统设置
  • 白皮精读:2024年国家数据基础设施建设指引【附全文阅读】
  • BSDIFF算法详解
  • winsever2016Web服务器平台安装与配置
  • 道德经总结
  • 配置文件,xml,json,yaml,我该选哪个?
  • 【RabbitMQ运维】集群搭建
  • 基于ZYNQ的LWIP网络TCP/IP调试
  • leetcode 两两交换链表中的节点 java
  • 外贸商城网站制作/seo优化的方法
  • 中国建设部网站-玻璃幕墙/网络整合营销案例
  • 免费网站代理访问/色盲测试图片
  • 网站的数据库空间价格/公司宣传软文
  • 诸暨网站制作设计/短视频seo营销
  • 做网站能注册账号的/seo咨询