首页 > 其他分享 >面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。

面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。

时间:2024-03-07 10:47:04浏览次数:29  
标签:面试官 Thread 创建 void 线程 new public

写在开头

昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上,我问他怎么回答的,他说自己有背过八股文,回答了:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种,但是面试官让说出8种创建方式,他没说出来,面试就挂了,面试官给的理由是:只关注八股文背诵,对线程的理解不够深刻!

在这里想问一下大家,这位小伙伴回答的这四种有问题吗?看过《Java核心技术卷》和《Java编程思想》的朋友应该都知道,在这两本书中对于多线程编程都有详细的介绍,并且也都提到了线程创建的方式:

  • ①继承Thread类,并重写run()方法;
  • ②实现Runnable接口,并传递给Thread构造器;
  • ③实现Callable接口,创建有返回值的线程;
  • ④使用Executor框架创建线程池。

鉴于这两本书的权威性,以及在国内的广泛传播,让很多学习者,写书者,教学者都以此为标准,长此以往,这种回答似乎就成了一种看似完美的标准答案了。

因此,这位小伙伴的回答在大部分面试官那里都是正确的,没有什么大问题,但既然这位面试官抛出了8种的提问,很明显他要的回答并不是八股文参考答案。那应该怎么回答才能征服这位面试官呢?请接着往下看!

创建线程的10种方式

既然面试官想看线程创建的方式,我们就往上整,不仅仅他要的8种,我们还可以说出10种,甚至更多,今天花了点时间,梳理了一下之前用到过得以及网上看到的线程创建的办法,我们通过一个个小demo去感受一下。

标签:面试官,Thread,创建,void,线程,new,public
From: https://www.cnblogs.com/JavaBuild/p/18058345

相关文章

  • Jumpserver资产创建管理
    Jumpserver资产管理:资产:服务器,路由器,交换机等设备资产管理用户:root超级管理员sudo伪管理员,默认以root身份去执行命令,因此慎用我们可以基于sudo命令做更多的权限控制zhangsan等普通用户,权限很低 admin  jumpserver管理员用户chaogejumpserver普通用户管理用户 【客......
  • Python开启线程和线程池的方法
    一.最佳线程数的获取:1、通过用户慢慢递增来进行性能压测,观察QPS(即每秒的响应请求数,也即是最大吞吐能力。),响应时间2、根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)*cpu数量3、单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值......
  • 关于Maven创建javaweb项目在配置Tomcat的问题(1)
    先将Maven项目转换成Java项目,确保没有架包没有报错和编译错误的情况下进行如下操作:打开Maven项目中的pom.xml文件,找到标签。查看里面是否配置元素,有则直接添加如下配置。org.codehaus.cargocargo-maven2-plugin1.7.6tomcat9xembedded如果没有,则先添加元素,然后再添加......
  • 面试官:说说微服务灰度发布的底层实现?
    微服务中的灰度发布(又称为金丝雀发布)是一种持续部署策略,它允许在正式环境的小部分用户群体上先部署新版本的应用程序或服务,而不是一次性对所有用户同时发布全新的版本。这种方式有助于在生产环境中逐步验证新版本的稳定性和兼容性,同时最小化潜在风险,不影响大部分用户的正常使用......
  • Flutter创建项目
    Flutter环境配置直接看文档,很详细,官方建议用stable多用 flutterdoctor-v指令,看看是否有环境异常网络的话,还是建议有科学工具,能省不少麻烦项目目录结构个人觉得还是比较重要,方便维护和扩展,Flutter项目的目录结构通常具有以下常见组织:android/:这个目录包含了与A......
  • Maven安装本地的jar包和创建带模板的自定义项目
    Maven安装本地的jar包如果没配置Maven的环境变量,需要先CD到maven的安装目录,因为没配置环境变量,mvn命令是无法在maven安装目录以外的目录运行。cdC:\Maven\apache-maven-3.6.3\bin然后执行下面命令格式如下:mvninstall:install-file//固定格式,maven的语法-Dfile=ali......
  • 进程与线程、同步与异步
    前言在计算机编程中,同步与异步、进程与线程是两组基本概念,对于理解并发编程至关重要。本文将深入探讨这些概念,解析它们的含义、特点以及在实际编程中的应用。进程和线程进程(Process)和线程(Thread)是计算机科学中重要的概念,它们都与程序执行和并发相关。进程:定义:进程是操作系......
  • 27. 创建USS血条样式
    创建HealthBarUSS内容如下所示这个CSS选择器是什么意思呢?.unity-progress-bar__container、.unity-progress-bar__background、.unity-progress-bar__progress分别会修改上面三张图里面的样式在最后还添加了.highHealth、.mediumHealth、.lowHealth这三个样式,用来修改......
  • C++ Qt开发:运用QThread多线程组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QThread组件实现多线程功能。多线程技术在程序开发中尤为常用,Qt框架中提供了QThread库来......
  • 用vite创建项目
    方式一:1.选择项目要存放的目录,在文件目录下输入创建命令:npminitvite@latest项目名称----templatevue,如:npminitvite@latestvite-blog----templatevue2.再依次输入提示代码:cd项目名称npminstallnpmrundev3.根据地址在浏览器访问即可方式二:1.创建命令:......