Java面试之Java多线程常见面试题

1、什么是线程?

定义:线程是程序中的执行路径,是操作系统进行调度的基本单位。它允许程序并发执行多个任务,提高程序的响应速度和资源利用率。

2、为什么需要线程?

1、提高并发性:线程允许程序同时执行多个任务,充分利用CPU资源。

2、提高响应速度:多线程可以处理用户输入、绘制图形、播放音乐等任务,使得程序更加流畅和响应迅速。

3、节约系统资源:相对于进程,线程的创建和销毁开销较小,可以更有效地利用系统资源。

3、线程和进程的区别是什么?

1、独立性:进程拥有独立的内存空间和系统资源,而线程是进程中的一个实体,共享进程的内存空间和系统资源。

2、资源占用:进程是资源分配的基本单位,而线程是调度执行的基本单位。线程比进程更轻量,创建和销毁的开销更小。

3、并发性:多个线程可以并发执行在同一个进程内,而多个进程则无法直接共享内存和资源。

4、 创建线程有几种方式?它们的优缺点

1、继承Thread类

优点:简单直观。
缺点:类的继承性受限,无法再继承其他类。

2、实现Runnable接口

优点:可以避免Java的单继承特性带来的局限,多个线程可以共享同一个Runnable实例。
缺点:相对于继承Thread类,实现接口的方式稍微复杂一些。

3、实现Callable接口

优点:可以获得执行结果,但需要借助ExecutorService执行器来启动线程。
缺点:相对于Runnable接口,实现Callable接口的方式更复杂一些。

5、run和start的区别是什么?

1、run方法:直接调用run方法并没有创建线程,而是在原来的线程中执行的代码。

2、start方法:调用start方法则是创建了线程,并在新线程中执行代码(与原来的线程并发执行)。

6、Java线程的状态有哪些?

NEW:线程对象已经创建,尚未启动。
RUNNABLE:线程已经启动,正在运行或准备运行。
BLOCKED:等待锁的时候进入的状态。
WAITING:特殊的阻塞状态,等待其他线程执行特定的操作。
TIMED_WAITING:线程等待另一个线程执行特定操作,但有一个时间限制。
TERMINATED:线程已经执行完毕或被中断。

7、同步和异步的区别是什么?

同步:多个线程在同一时间段内访问共享资源时,只有一个线程能够占用资源,其他线程必须等待。

异步:多个线程在不同时间段内访问共享资源时,各自单独占用资源,不存在竞争问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/776934.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件运维服务方案(Word原件2024)

软件运维服务方案(Word原件) 1. 服务简述 我们提供全面的软件运维服务,确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务,灵活响应客户需求。 1.3 服务要求 高效响应&am…

计算机应用数学--第三次作业

第三次作业计算题编程题1 基于降维的机器学习2 深度学习训练方法总结 第三次作业 计算题 (15 分)对于给定矩阵 A A A(规模为 42),求 A A A 的 SVD(奇异值分解),即求 U U U, Σ …

Spring 6.1.10版本源码编译

每篇一句 我们对时间的感知其实非常主观,我们越习惯于我们的生活方式,生活里面的新鲜感就越少,我们对时间 的感知就越快,生命就越短。 1.源码下载 进入Spring官网 https://spring.io/ 按照上图步骤进入如下Spring Framework链…

数据结构--单链表实现

欢迎光顾我的homepage 前言 链表和顺序表都是线性表的一种,但是顺序表在物理结构和逻辑结构上都是连续的,但链表在逻辑结构上是连续的,而在物理结构上不一定连续;来看以下图片来认识链表与顺序表的差别 这里以动态顺序表…

实现沉浸式体验的秘诀:深入了解折幕投影技术!

在当今多媒体技术的浪潮中,投影技术已蜕变成为超越传统内容展示范畴的非凡工具,它深度融合了互动性与沉浸感,成为连接观众与虚拟世界的桥梁。折幕投影技术,作为这一领域的璀璨明珠,更是以其独特而神奇的手法&#xff0…

小酌消烦暑|人间正清欢

小暑是二十四节气之第十一个节气。暑,是炎热的意思,小暑为小热,还不十分热。小暑虽不是一年中最炎热的时节,但紧接着就是一年中最热的节气大暑,民间有"小暑大暑,上蒸下煮"之说。中国多地自小暑起…

开发必备基础知识【字符编码合集】

开发必备基础知识【字符编码合集】 大家在日常开发交流中会发现,别人那里运行的好好的文件,在你电脑上却无法编译,甚至出现一堆莫名其妙的字符,比如:��� 程序中经常遇到一些关于乱码…

科普文:如何进行有效沟通

概叙 你会沟通吗? 你知道正确的沟通应该怎么做吗? 在日常生活和工作中,不会沟通带来的困扰是否让你感同身受? 在工作中,你是否因表达不清让观点无法被同事理解和采纳,影响职业发展? 与上级交流是…

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码,系统基于thinkphp框架开发,功能已全完善,可灵活对接其他上游渠道接口,默认对接了大猿人接口,另外可无限制自定义创建充值页面,首页支持后台自定义修改,支持三级分销&…

STM32嵌入式工业机器人控制系统教程

目录 引言环境准备工业机器人控制系统基础代码实现:实现工业机器人控制系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 运动控制系统实现 4.4 用户界面与数据可视化应用场景:工业自动化与优化问题解决方案与优化收尾与总结 1. 引言 工业机器人控制系统…

Java基础(六)——继承

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

计算机应用数学--第二次作业

第二次作业计算题编程题 第二次作业 计算题 给定图 G G G(如图 1,图中数值为边权值),图切割将其分割成多个互不连通的⼦图。请使⽤谱聚类算法将图 G G G 聚类成 k 2 k 2 k2 类,使得: (a) RatioCut 最…

《向量数据库指南》——Milvus Cloud索引增强如何提升 RAG Pipeline 效果?

索引增强 1.自动合并块 在建立索引时,分两个粒度搭建,一个是chunk本身,另一个是chunk所在的parent chunk。先搜索更细粒度的chunks,接着采用一种合并的策略——如果前k个子chunk中超过n个chunk属于同一个parent chunk&#xff0c…

架构师学习理解和总结

1.架构设计理念 2.架构方法论 2.1需求分析 2.1.1常见需求层次 2.1.2 常见需求结果 2.1.3 需求与架构关系 2.2 领域分析 2.3 关键需求 2.4 概念架构设计 2.5 细化架构设计 2.6 架构设计验证 3.架构设计工具 3.1 DDD领域建模 3.2 41视图分析法 3.3 UML设计工具 4.架构师知…

Pathformer: multi-scale transformer

文章目录 摘要1 引言贡献 2 相关工作时间序列预测时间序列的多尺度建模 3 方法论3.1 多尺度变压器块多尺度划分双重注意力 3.2 自适应路径多尺度路由器多尺度聚合器 摘要 用于时间序列预测的变压器模型主要针对有限或固定尺度的时间序列进行建模,这使得捕捉跨越不同…

竞赛选题 卷积神经网络手写字符识别 - 深度学习

文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…

如何实现一套键盘鼠标控制两台计算机(Mouse Without Borders快速上手教程)

需求背景 当我们需要同时使用一台主机和一台笔记本的时候,如果使用两套键盘和鼠标分别操作各自的系统,非常地不便捷且非常占据桌面空间。那么如何使用一套键盘鼠标控制两台电脑呢? 需求实现 软件说明 我们可以使用微软官方的一款软件Mous…

nodejs 获取客服端ip,以及获取ip一直都是127.0.0.1的问题

一、问题描述 在做登录日志的时候想要获取客户端的ip, 网上查了一下 通过 req.headers[x-forwarded-for] || req.connection.remoteAddress; 获取, 结果获取了之后不管是开发环境,还是生产环境获取到的一直都是 127.0.0.1,这是因为在配置N…

代码随想录算法训练营第22天|LeetCode 77. 组合、216.组合总和III、17.电话号码的字母组合

1. LeetCode 77. 组合 题目链接:https://leetcode.cn/problems/combinations/description/ 文章链接:https://programmercarl.com/0077.组合.html 视频链接:https://www.bilibili.com/video/BV1ti4y1L7cv 思路:利用递归回溯的方式…

开启视频创作新篇章!腾讯发布MimicMotion:单张图像+简单姿势,瞬间“活”化视频。

腾讯和上交发布了一个根据图片生成跳舞视频的项目MimicMotion。效果同时支持面部特征和唇形同步,不止可以搞跳舞视频,也可以做数字人。 MimicMotion方案优化的内容有: 引入基于置信度的姿态引导机制。确保生成的视频在时间上更加连贯流畅。 …