当前位置: 首页 > 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()方法获取所有的锁来判断是否持有锁

6. 如何控制多线程的执行顺序

  1. 可以通过Thread类的join()方法控制线程的执行顺序。线程1通过调用join()方法可以让当前线程等待直到线程1执行完成后再运行。
  2. 通过Executors类方法newSingleThreadExecutor()创建单线程池的方式来实现多个线程的顺序执行。
  3. 通过CompletableFuture类的方法runAsync(),实现多线程的顺序执行。
http://www.sczhlp.com/news/845.html

相关文章:

  • 服务器新手常见错误及网站搭建问题解析
  • 7月28日总结
  • html重定向
  • 2025杭电暑期联赛第四场(持续更新)
  • 搜索结果太乱?5种重排序模型让你的搜索系统准确率提升40%
  • 00.01.Linux 应急响应:账号安全与入侵排查
  • 2025年7月28日
  • 7.28 训练总结
  • 人工智能驱动企业:通过情境感知AI重塑组织0引言
  • 亚马逊机器人如何应对交通拥堵
  • 多线程(续)
  • 2025 -- 云智计划 -- 【CSP-S】模拟赛 #1_总结+题解
  • 习题-有限集
  • 29
  • 第二十六天
  • 【题解】P12019 [NOISG 2025 Finals] 洪水
  • pygame小游戏打飞机_2模块显示
  • tt
  • 工程建立 - LI,Yi
  • Java基础语法学习 ———— Day1
  • 阶跃星辰端到端语音模型 Step-Audio 2:深度思考+音色切换;11Labs 对话式 AI 增加 WebRTC支持丨日报
  • 子串的故事(2) - 2025“钉耙编程”中国大学生算法设计暑期联赛(2)T4 题解
  • 【比赛记录】2025CSP-S模拟赛28
  • Apereo CAS 4.1 反序列化命令执行漏洞 (复现)
  • 第十四篇
  • 《大道至简——软件工程实践者的思想》读后感
  • DE_aemmprty 题单合集(分类)
  • 假期学习
  • C++对象模型
  • 软工7.28