`

Java面试题_多线程

 
阅读更多

1.进程和线程的区别?

进程是一个具有独立功能的程序关于某个数据集合的执行活动,不同的进程拥有独立的内存空间;线程是程序执行的最小单位,一个或多个线程组成一个进程,同一个进程中的所有线程共享相同的内存空间,运行时都有一个线程栈来保存变量值信息。

 

2.Thread类中的start()和run()有什么区别?

start()是用来启动新创建的线程,在start()内部调用了run(),当前线程仅能通过start()启动一次线程;若在本线程中直接调用run(),则它为一个普通的方法调用而已,没有创建新的线程,可以调用多次。

 

3.Runnable和Callable有什么区别?

Runnable和Callable的核心功能没什么区别,只是Callable可以返回值和抛出异常。

 

4.volatile有什么作用?

使用volatile修饰的变量,线程每次在使用变量的时候,都会读取变量修改后的最新值。具体工作方式:从堆内存加载变量值到线程本地内存,建立一个变量副本,线程对变量的修改在线程内存完成,然后再将值写回堆内存。若两个线程对堆中的同一个变量进行操作,也会出现并发问题。

 

5.什么是竞态条件?

当多个线程同时执行一段代码(或使用相同资源),因为顺序原因导致执行结果不符合预期,就出现了竞态条件。

 

6.如何处理线程运行时发生的异常?

我们知道,Thread的run()是不抛出任何检查型异常(Checked Exception)的,而它自身有可能因异常而终止执行,即使用try…catch也没法捕获。Java5.0提供了一个Thread.setUncaughtExceptionHandler来设置对线程中未捕获异常的处理。

 

7.请简述ThreadLocal的作用。

当使用ThreadLocal修饰变量时,ThreadLocal为每个使用该变量的线程提供了独立的变量副本,每个线程可以独立地操作自己的副本,而不会影响到其它线程的副本。

 

8.为什么wait()和notify()需要在同步块中调用?

首先,JDK强制要求这样做,否则会抛出IllegalMonitorStateException;还有就是,这样可以避免wait和notify之间产生竞态条件。

 

9.请简述join()和yield()的作用。

t.join()表示阻塞主线程,等待t线程直到t线程运行结束;t.yield()表示阻塞t线程,将CPU资源让给其它相同优先级的资源。

 

10. 请简述wait()和sleep()方法有什么不同?

 

sleep()是由Thread提供的,它会释放CPU资源一段时间,但不会释放锁,等待的时间到了会恢复运行;wait()是由Object提供的,它会放弃对象锁,进入等待锁定池,直到针对此对象的notify()才能获取锁进入运行状态。

2
4
分享到:
评论

相关推荐

    java面试题_多线程(68题).zip

    这份“java面试题_多线程(68题).zip”压缩包很可能是包含了68个与Java多线程相关的面试问题和解答,帮助求职者准备相关面试。以下是一些可能包含在这些问题中的核心知识点: 1. **线程的创建**:Java提供了两种主要...

    【面试资料】-(机构内训资料)java面试题_多线程(68题).zip

    这份【面试资料】-(机构内训资料)java面试题_多线程(68题)的压缩包,包含了关于Java多线程的68个经典问题,旨在帮助求职者或开发者系统性地复习和掌握这一领域的知识。 1. **线程基础** - **什么是线程?** 线程...

    java面试题_多线程(68题).pdf

    Java中的多线程是面试中常见的话题,涵盖了操作系统的基础概念以及Java并发库的高级特性。以下是对这些知识点的详细解释: 1. **线程**:线程是操作系统调度的基本单元,一个进程中可以有多个线程并发执行。在多...

    java面试题_多线程(68题)

    Java多线程是Java编程中的核心概念,尤其在面试中,它是考察开发者高级技能和并发理解的关键领域。这里,我们将深入探讨与Java多线程相关的68个面试问题,涵盖基础知识、线程安全、同步机制、线程池、死锁等关键知识...

    java面试题-多线程(含答案).pdf

    java面试题_多线程(含答案).pdf

    javamianshi.rar_java 试题_java 面试_java 面试题_java面试_面试

    这份名为"javamianshi.rar"的压缩包包含了丰富的Java面试题,旨在帮助毕业生和其他求职者进行有效的复习,以提高他们在面试中的表现。下面将详细讨论Java面试中常见的知识点。 一、Java基础知识 1. 类与对象:理解...

    2020年Java各知识点综合面试题.zip

    多线程\java面试题_多线程(68题).pdf 多线程\多线程面试59题(含答案)_.pdf 多线程\多线程,高并发.pdf 并发编程\并发编程面试专题.pdf 并发编程\并发编程面试题.pdf 并发编程\并发面试题.pdf 性能优化\深入了解...

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...

    直击面试系列_破解Java面试题_全

    本资料“直击面试系列_破解Java面试题_全”显然是为了帮助求职者准备这些常见的Java面试问题。 首先,我们来看看Java的基础知识。Java语法基于C++,但去除了指针等易出错的特性,引入了垃圾回收机制来自动管理内存...

    Java全能学习面试手册——Java面试题库.zip

    32 java面试题_多线程(68题).pdf 33 java面试题_设计模式(26题).pdf 34 java面试题_微服务--dubbo(41题).pdf 35 java面试题_消息中间件--RabbitMQ(20题).pdf 36 java面试题_消息中间件--RocketMq(14题).pdf 37 JVM....

    java名企面试题_java面试题_

    这些知识点只是Java面试题中的一部分,企业在面试时还会关注候选人的项目经验、问题解决能力、团队协作精神等方面。所以,除了技术积累,面试者还需要具备良好的沟通技巧和项目管理意识,以提升自己在面试中的竞争力...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 Spring面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper 面试题 数据结构...

    javamianshiti.rar_C 笔试题_java 试题_java笔试题_java面试_笔试

    4. **java面试**:意味着除了笔试题外,还可能包含面试常问问题,如项目经验、设计模式、多线程、JVM原理等。 5. **笔试**:再次强调了这个资源的主要目的是帮助用户准备技术笔试环节。 【压缩包子文件的文件名称...

    【面试必备】JAVA 最常见面试题全解析 附 PDF.pdf_java面试_javapdf_java_面试题_

    这份"【面试必备】JAVA 最常见面试题全解析 附 PDF"文档,正是为准备Java面试的开发者量身定制的资源,涵盖了Java的基础到高级知识点,旨在帮助你全面理解和掌握Java技术。 一、基础篇 1. Java语法:包括变量、数据...

    每日一题20190628_java面试题_

    【标签】:“java面试题”明确了这个压缩包的核心内容,即与Java语言相关的面试问题,这些题目可能涵盖初级到高级的水平,包括基础语法、集合框架、多线程、IO流、异常处理、JVM内存模型、设计模式、Spring框架、...

    多线程面试题

    本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的最小单位,一个进程可以有多个线程同时执行任务,提高了程序的运行效率。 2. **Java中的线程创建方式...

    Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题

    Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题、SpringBoot面试题、SpringCloud面试题、MyBatis面试题、Mysql面试题、VUE面试题、算法面试题、运维面试题。 收集汇总各行业笔试or编程题解题思路 ...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

Global site tag (gtag.js) - Google Analytics