Java面试题:实现Java线程方法,sleep() 和 wait() 区别

Java开发工程师笔试面试题 1.List和Set和Map的区别 List,Set都是继承自Collection接口 List:元素放入顺序,元素可以重复,允许按照对象在集合中的索引位置检索对象,例如通过list.get(i)方法来获取集合中的元素; Set:元素放入无序,元素不可重复,重复元素会被覆盖掉 元素虽然无法顺序放入,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set的O... 阅读详情

1、一个几千万数据,发现数据查询很慢,怎么办?

1、查看对应的查询字段上是否建立索引,如果没有建立索引的话,建立索引,再查看效果。

2、如果已经建立了索引的话,分析对应的sql语句是否存在问题,是否有走索引。

3、如果sql语句没有问题,也走了索引的话,则考虑因为表的频繁的增删操作,导致表空间持续增大未得到释放,此时需要释放表空间,重建索引。

2、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

实现线程有两种方式:1.继承Thread类,重写run方法,在调用start方法。

实现Runnable接口,重写run方法。在传给Thread构造器,调用时调用Thread的start方法。

用synchronized关键字修饰同步方法 。

不使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

3、sleep() 和 wait() 有什么区别?

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

 

【新华三】通过路由复制实现Public与VRF路由互通 如上图所示,S6900设备里有两张表,一张是public路由表,默认所有的路由都存放在public路由表里;除此之外还创建了VRF test,因此此设备还有VRF test路由表。通过路由复制实现Public路由和VRF路由互通,默认情况下VRF里的路由单独一张路由表,默认情况下与public路由表相互隔离,两张表之间不可互访。此时的public路由表里面并没有test的路由表。public路由表与VRF路由表之间相互隔离。此时VRF test里的路由也没有其他VRF或Public里的路由,相互隔离。 阅读详情

相关推荐

NXP S32K3 Safety软件生态全解析:RTD、SPD、SAF、SCST到底怎么选?

本文深入解析NXP S32K3系列MCU的安全软件生态,详细对比RTD、SPD、SAF和SCST四大组件的功能定位与选型策略。针对不同ASIL等级需求,提供从架构设计到工程实践的完整解决方案,帮助开发者高效实现功能安全认证,优化汽车电子系统的安全性与可靠性。

weixin_42524226的博客 324

JAVA线程sleep和wait方法区别

一 sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,调用sleep 不会释放对象锁。由于没有释放对象锁,所以不能调用里面的同步方法。 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;sleep...

aocang4831的博客 409

博途S7-1200与昆仑通态MCGS纯仿真联调实战指南

本文详细介绍了博途S7-1200与昆仑通态MCGS纯仿真联调的实战指南,包括环境搭建、配置步骤、通信桥接及故障排除。通过TIA Portal和MCGS Pro搭建的仿真环境,可实现80%以上的基础功能验证,适用于工业自动化学习和开发,大幅降低硬件投入成本。

weixin_26834815的博客 441

线程的 sleep() 方法与 wait() 方法的区别

线程的 sleep() 方法与 wait() 方法的区别

jiaomubai的博客 1万+

TI电量计BQ40Z50R2循环学习实战:从量产文件生成到关键标志位解析

本文详细解析了TI电量计BQ40Z50R2的循环学习实战流程,从量产文件生成到关键标志位解析。通过实战案例和易错分析,帮助工程师避开常见陷阱,提升电量计配置效率。重点介绍了循环学习前的准备工作、量产文件生成步骤及关键标志位的深度解读,适用于电池管理系统开发人员。

weixin_30505225的博客 439

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 946

线程

yaomenglan69的专栏 307

手把手教你搞定MT6701磁编码器的SSI通信与CRC-6校验(附避坑代码)

本文详细介绍了MT6701磁编码器的SSI通信与CRC-6校验的实现方法,包括硬件连接、时序配置、数据读取和专用CRC-6算法。通过提供避坑代码和常见问题解决方案,帮助开发者快速掌握磁编芯片的调试技巧,确保通信稳定可靠。

weixin_30872337的博客 222

Java多线程sleep和wait的区别

我们都知道sleep是让线程休眠,到时间后会继续执行;wait是等待,需要唤醒再继续执行,那么这两种方法在多线程中的表现形态有什么不同? 使用方面: 从使用的角度来看sleep方法是Thread线程类的方法,而wait是Object顶级类的方法。 sleep可以在任何地方使用,而wait只能在同步方法和同步块中使用。 CPU及锁资源释放: sleep、wait调用后都会暂停当前线程并让出CPU的...

OceanSky的专栏 7533

RT-DETR算法优化改进:Backbone改进 | HGBlock完美结合PPHGNetV2 GhostConv

GhostConv助力RT-DETR ,HGBlock与PPHGNetV2 GhostConv完美结合

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2912

YOLO11改进|YOLO11中引入注意力和卷积融合模块CAFMAttention

YOLO11改进|YOLO11中引入注意力和卷积融合模块CAFMAttention

A1983Z的博客 1225

理解sleep()和wait()

文章目录前言一、sleep()二、wait()三、sleep()和wait()的区别总结 前言 sleep方法和wait方法是两个非常容易混淆的概念,也是经常会被问到的一个问题。本文介绍了两个方法各自的特点以及两个方法之间的区别,有助于我们理解并且区分。 一、sleep() sleep()方法是Thread类里面的方法,调用该方法会导致当前线程休眠 下面以一个案例来讲解sleep方法的具体使用场景 package com.ffyc.thread.day1; public class Example

qq_52173163的博客 2620

【100%通过率】华为OD机试真题 JavaScript 实现【对称美学】【2023 Q1 | 100分】

对称就是最大的美学,现有一道关于对称字符串的美学。 已知: 第1个字符串:R 第2个字符串:BR 第3个字符串:RBBR 第4个字符串:BRRBRBBR 第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错! 就是第i个字符串=第i-1号字符串的取反+第i-1号字符串。取反即(R->B,B->R); 现在告诉你n和k,让你求得第n个字符串的第k个字符是多少。(k的编号从0开始)

MISAYAONE的博客 9850

多线程基础知识(全面):创建线程、线程状态如何变化、wait()、notify()、sleep()、停止线程

多线程基础知识(全面):创建线程的四种方式、线程状态如何变化、wait()、notify()、sleep()、Thread()常用方法、停止线程的三种方式

qq_44700578的博客 1361

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

线程相关面试题

定义:ThreadLocal 是 Java 中用于实现线程隔离存储的核心工具类,它为每个线程提供独立的变量副本,确保线程间数据互不干扰。ThreadLocal是一个类似于HashMap的数据结构;ThreadLocal的实现原理就是通过set把value set到线程的threadlocals属性中,threadlocals是一个Map,其中的key是ThreadLocal的this引用,value是我们所set的值;

qq_37384052的博客 523

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java线程通信/生产消费者模型(面试常问附练习题)

wait和 notify必须配合synchronized使用,wait方法释放锁(醒来的位置就是wait所在的位置),notify方法不释放锁,两个方法的调用者要和锁对象保持一致

hongs468的博客 701

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

线程通信使用

package com.atguigu.java1; /* * 线程通信的例子:使用两个线程打印1-100.线程一 * 线程二交替打印 * 涉及到线程通信得三个方法 * wait():一旦执行此方法,当前线程进入阻塞状态,并释放同步监视器 * notify():一旦执行此方法,就会唤醒被wait()得一个进程。如果有多个线程被wait(),就唤醒优先级高的 * notifyAll():一旦执行此方法,就会唤醒所有被wait()的进程。 * * * * 面试题:sleep()和wa...

qq_44740800的博客 131

Java之多线程面试题

很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外

way 2522

Java--多线程

十:多线程_lsqstudy的博客-优快云博客 Java多线程超详解_weixin_44797490的博客-优快云博客_java多线程 需要明白: 关于继承的方式,遇到同步方法或者同步代码快的时候,此时的锁是类.class,且需要共享数据的时候,在定义的数据的时候,此方式是static的静态属性(因为静态方法或属性,是由类的加载而加载的,若非,则会被执行多此,则此线程不安全) 关于实现的方式,遇到同步方法或者同步代码快的时候,此时的锁是this(或者是唯一的一种对象) 更喜欢实现的方式来做多线

weixin_52361100的博客 154

java 多线程 选择题_java多线程面试题选择题大全含答案

# java多线程面试题选择题大全含答案**1.下面程序的运行结果()(选择一项)**```javapublic static void main(String[] args) {Thread t=new Thread(){public void run(){pong();}};t.run();System.out.println("ping");}static void pong(){Syste...

weixin_30682487的博客 333

多线程涉及的问题

1.  sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入

zyjing_love的专栏 546

Java基础面试题笔记(三)

目录Java基础面试题笔记面试题答案与解析 Java基础面试题笔记 面试题 答案与解析 面试题与解析来源“时代名猿”公众号,做了一些自己的笔记与理解~ 2021-04-14

qq_47482077的博客 366

字节跳动头条研发---测试开发一面面经(附答案)

因为读者里有不少刚入门测试的同学,这两天抽空整理了一份字节测开实习的面试题答案,说实话这个题目真挺简单的,如果你面大厂碰到此类面试题,也算是运气很好啦。大家也可以先自测一下,看看自己能不能答上来。

软件测试技术交流分享 1230

Java面试题集(51-70)

这一部分主要讲解了异常、多线程、容器和I/O的相关面试题。首先,异常机制提供了一种在不打乱原有业务逻辑的前提下,把程序在运行时可能出现的状况处理掉的优雅的解决方案,同时也是面向对象的解决方案。而Java的线程模型是建立在共享的、默认的可见的可变状态以及抢占式线程调度两个概念之上的。Java内置了对多线程编程的支持在20世纪90年代可以说是一个巨大的进步,但是最初的设计在当下看来已经给程序带来很多困扰了。感谢Doug Lea在Java 5中提供了他里程碑式的杰作java.util.concurrent包,它的

骆昊的技术专栏 5万+

JAVA程序员面试32问

1、谈谈final, finally, finalize的区别。 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally—再异常处理时提供 finally 块来执行任何清除操..

编程领域的博客 182

Java多线程wait()和notify()方法图解

多线程场景下 wait 和notify 方法详解,注意事项,内部阻塞队列和等待队列的过程,wait和sleep方法的区别

VIBE的博客 4251
上一篇: MyBatis源码解析
下一篇: 字节的面试题到底有多难?大厂为何都注重算法?我们该如何应对?
Javaesandyou
博客等级 码龄5年 742粉丝 563原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值