线程相关面试题

简介: 线程相关面试题

1、线程run和start的区别?

  • 当程序调用 start() 方法,将会创建一个新线程去执行 run() 方法中的代码。 run() 就像一个普 通方法一样,直接调用 run() 的话,不会创建新线程。
  • 一个线程的 start() 方法只能调用一次,多次调用会抛出 java.lang.IllegalThreadStateException 异常。 run() 方法则没有限制。

2、wait()和sleep()的异同点?

相同点:

1. 使当前线程暂停运行,把机会交给其他线程

2. 任何线程在等待期间被中断都会抛出 InterruptedException

不同点:

1. wait() 是Object超类中的方法;而 sleep() 是线程Thread类中的方法

2. 对锁的持有不同, wait() 会释放锁,而 sleep() 并不释放锁

3. 唤醒方法不完全相同, wait() 依靠 notify 或者 notifyAll 、中断、达到指定时间来唤醒;而 sleep() 到达指定时间被唤醒

4. 调用 wait() 需要先获取对象的锁,而 Thread.sleep() 不用

3、Runnable和Callable有什么区别?

  • Callable接口方法是 call() ,Runnable的方法是 run() ;
  • Callable接口call方法有返回值,支持泛型,Runnable接口run方法无返回值。
  • Callable接口 call() 方法允许抛出异常;而Runnable接口 run() 方法不能继续上抛异常。
相关文章
|
1月前
|
Java 数据库连接 调度
面试题:用过线程池吗?如何自定义线程池?线程池的参数?
字节跳动面试题:用过线程池吗?如何自定义线程池?线程池的参数?
29 0
|
2月前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
66 1
|
3天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
13 0
|
3天前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
6 0
|
13天前
|
监控 安全 Java
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
|
18天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
42 1
|
25天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
33 0
|
1月前
|
存储 安全 Java
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)
44 0
|
1月前
|
存储 安全 Java
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(上)
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)
37 0
|
1月前
|
缓存 算法 安全
java多线程面试题
java多线程面试题