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

Java面试见闻2025-7

1. 如何配置线程池

  1. 通过new ThreadPoolExecutor类并指定相应的线程池参数创建并设置线程池,主要参数为核心线程数corePoolSize ,最大线程数maximumPoolSize,线程过期时间keepAliveTime,工作队列workQueue等。工作队列分为四种:有界队列,如ArrayBlockingQueue,LinkedBlockingQueue(指定容量);无界队列,如LinkedBlockingQueue(不指定容量或指定容量为Integer.MaxValue);立即提交队列,SynchronousQueue;优先提交队列,如PriorityBlockingQueue。

  2. 通过Executors工具类的相应方法创建工具类提供的不同类型的线程池。

2. 如何获取线程占用Cpu的状态

  • 可以先通过ps -ef -all命令查询当前线程所属进程的pid,然后根据pid通过命令top -H -p PID查询进程下线程的cpu和内存占用情况。

3. 线程有几种创建方式,分别是什么

  1. 通过继承Thread类,并且重写run方法的方式创建线程。
  2. 通过实现Runnable接口,并且实现run方法的方式创建线程。
  3. 通过实现Callable接口,并且实现run方法的方式创建线程。
  4. 通过线程池创建线程。
    注:以上多种方式原理都是通过new Thread.start()方式创建新线程。

4. 线程中如何共享数据

  1. 通过全局变量或者静态变量,但要注意线程安全问题,可以通过synchronized 关键字对边相关代码块加锁保证数据的一致性。也可以通过volatile关键字声明变量,这样可以保证对此变量的修改全局可见。
  2. 通过线程安全的容器,如ConcurrentHashMap,CopyOnWriteArrayList集合供线程安全的共享数据。
  3. 通过BlockingQueue,通过创建一个消息队列来实现多个线程共享队列中的数据。

5. 如何检测当前线程是否持有锁

  1. 使用Thread类的Thread.holdsLock(Obj obj)方法可以判断当前线程是否持有此对象的锁。
  2. 通过ReentrantLock类的isHeldByCurrentThread()方法,判断调用此方法的锁是否为当前线程持有。
  3. 可以通过ThreadMXBean类的getThreadInfo(long id)方法获取当前线程的信息ThreadInfo,然后通过ThreadInfo的getLockedMonitors()方法获取所有的锁来判断是否持有锁
http://www.vanclimg.com/news/567.html

相关文章:

  • 7月28日总结
  • 服务器外的文件,复制不到服务器上面
  • 数据资产到底值不值钱 - 智慧园区
  • LIS笔记
  • CF2122G Tree Parking 题解
  • 03_Wazuh安装和使用.md
  • 01_pfSense防火墙安装和使用文档
  • 新视角问诊通
  • 寻医问药小程序系统
  • c# ACME client
  • 寻疗智慧 IOT 数字健康服务平台
  • 入职—员工体验的关键时刻,看AI Agent如何将体验值、效率值双双拉满
  • 文件完整性校验工具 CHK 5.51 绿色中文版
  • 2025年7月26日,工信部人才交流中心 CUUG - PGCP/PGCM认证考试完成!
  • 链上充值监听与自动划转资金流程实现 - fox
  • synchronized底层实现是什么 lock底层是什么 有什么区别
  • iOS 性能监控 苹果手机后台运行与能耗采样实战指南
  • pygame打飞机_1展示窗口
  • 个人版Navicat17 Lite版本安装教程(附安装包)2025最新版详细图文安装教程
  • TapData 出席 TDBC 2025 可信数据库发展大会,分享“实时+信创”时代的数据基础设施演进路径
  • AI 是搭子不是替代者:我用大模型工具(cursor,trae)编程的一年经验总结 - IT
  • AIX中为单网卡配置多IP地址
  • NepCTF 2025
  • 【LeetCode 234】回文链表 —— 算法进阶:时间复杂度 O(n),空间复杂度 O (1)
  • Navicat Premium 数据库管理工具 v17.1.10 绿色版
  • 线性筛筛一般积性函数
  • 昨日总结
  • 差分探头都能测那些信号呢?
  • VisualCppRedist 运行库合集 v84
  • word自定义标序号