【创作赢红包】进线程有关的面试题

简介: 【创作赢红包】进线程有关的面试题

一,简述 wait 和 sleep 有什么区别?

  1. sleep是线程类(Thread)的方法;wait是Object类的方法
  2. sleep是使线程休眠,不会释放对象锁;wait是使线程等待,释放锁
  3. sleep()方法导致了程序暂停(线程进入睡眠状态),但是他的监控状态依然保持着,当指定的时间到了又会自动恢复到 可运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。
  4. wait是让自己暂时等待,放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
  5. 调用sleep进入阻塞状态;调用wait进入就绪状态

二,请描述 volatile 关键字的作用

  1. 线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。
  2. 顺序一致性:禁止指令重排序。

三,sleep()方法和wait()方法区别

共同点:都是使线程暂停一段时间的方法。

不同点:①原理不同-sleep()是属于Thread类中的,而wait()方法,则是属于Object类中的。

②锁处理机制不同-sleep()最主要作用使线程暂停执行一段时间,时间一到自动恢复,不涉及线程通讯,因此,调用sleep()方法并不会释放锁。而当调用wait()方法的时候,线程会释放它所占的锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

③使用区域不同-wait()方法必须放在同步代码块或者同步方法中使用,sleep()可以用在任何地方

四,简述线程池有什么优点?

1、重用存在的线程,减少对象创建销毁的开销。

2、可有效的控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞

争,避免堵塞。

3、提供定时执行、定期执行、单线程、并发数控制等功能。

五、非常重要的面试题:谈谈进程和线程之间的区别![高频]―谈到操作系统,进程线程的概念和区别,就是出场频率最高的问题(没有之一)

1.进程包含线程

2.线程比进程更轻量,创建更快,销毁也更快

3.同一个进程的多个线程之间共用同一份内存/文件资源.进程和进程之间,则是独立的内存/文件资源

4.进程是资源分配的基本单位,线程是调度执行的基本单位

六、工作目录:

1.如果是通过命令行来执行程序,此时当前命令所在的目录就是工作目录~~

2.如果你使用IDEA来执行执行Java程序,这个时候你的工作目录是IDEA打开的项目的目录

3.如果你使用的是Tomcat 来运行一个war包,你的工作目录就是Tomcat的 bin目录~

七、程序和进程的本质区别是;

   “静态”意味着程序是永久存在的,“动态”表现为进程是一个暂时的过程,可以创建也可以撤销。在进程的一个生存周期中,具有运行、就绪和等待3种可能的状态。 程序和进程也是紧密相关的:进程由程序、数据和进程控制快(PCB)3部分组成,显然如果没有程序,也就没有进程。








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