首页 > 编程语言 >Java面试之Java中实现多线程有几种方法

Java面试之Java中实现多线程有几种方法

时间:2024-11-08 23:08:08浏览次数:3  
标签:Runnable Java Thread 接口 Callable 面试 线程 多线程

前言

本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Java中实现多线程有几种方法?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘

*** 12万字的java面试题整理 ***

Java中实现多线程有几种方法

创建线程的常用三种方式:

  1. 继承Thread类
  2. 实现Runnable接口
  3. 实现Callable接口( JDK1.5>= )
  4. 线程池方式创建

通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Runnable接口与实现Callable接口的方式基本相同,只是Callable接口里定义的方法返回值,可以声明抛出异常而已。因此将实现Runnable接口和实现Callable接口归为一种方式。这种方式与继承Thread方式之间的主要差别如下。

采用实现Runnable、Callable接口的方式创建线程的优缺点优点:
优点:线程类只是实现了Runnable或者Callable接口,还可以继承其他类。这种方式下,多个线程可以共享一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好的体现了面向对象的思想。

缺点:编程稍微复杂一些,如果需要访问当前线程,则必须使用 Thread.currentThread() 方法

采用继承Thread类的方式创建线程的优缺点
优点:编写简单,如果需要访问当前线程,则无需使用 Thread.currentThread() 方法,直接使用
this即可获取当前线程
缺点:因为线程类已经继承了Thread类,Java语言是单继承的,所以就不能再继承其他父类了。

标签:Runnable,Java,Thread,接口,Callable,面试,线程,多线程
From: https://www.cnblogs.com/xswz/p/18536104

相关文章

  • Java 开发中的 9 个异常处理的避坑技巧:实战案例解析
    文章目录1.不要滥用catch一切的异常2.使用自定义异常明确表达业务逻辑3.切勿在finally中使用return4.避免吞掉异常5.避免在循环中创建异常6.利用`try-with-resources`自动关闭资源7.避免使用异常控制流程8.避免频繁创建和抛出自定义异常9.细分捕获异常类......
  • Java 开发中的 9 个实用避坑技巧:实战案例解析
    文章目录1.避免使用`==`比较字符串2.谨慎处理`NullPointerException`3.小心隐式类型转换4.避免过度使用静态变量5.合理控制线程池大小6.小心浮点数比较7.避免死锁8.谨慎使用可变参数(Varargs)9.使用`equals`和`hashCode`时实现一致性总结推荐阅读文章......
  • 每日OJ题_牛客_BC157素数回文_数学_C++_Java
    目录牛客_BC157素数回文_数学题目解析C++代码Java代码牛客_BC157素数回文_数学素数回文_牛客题霸_牛客网描述:现在给出一个素数,这个素数满足两点:1、  只由1-9组成,并且每个数只出现一次,如13,23,1289。2、  位数从高到低为递减或递增,如2459,87631。请你判断一下,这......
  • JavaWeb --cookie和session技术
    Cookiecookie*客户端技术,存放在客户端,由服务器发放给用户保存*一个Cookie只能存放一个键值对Cookiecookie=newCookie(""(name),""(value));//设置cookie有效期单位秒//>0表示cookie有效期//=0删除cookie//<0会话cookiecookie.setMaxAge(0);//将cookie响应给客......
  • 简略的图书系统(对刚学完的javase语法运用)
    目录1,实现图书系统的思维过程(使不同的内容构架联系起来)2,主要操作的代码2.1,IOPeration2.2,AddOperation2.3,BorrowedOperation2.4,DelOperation2.5,ExitOperation2.6,FindOperation2.7,ReturnOperation2.8,ShowOperation2.9,Main刚学完javase,对知识使用起来,让自己熟悉和进......
  • flask基于java的课程答疑系统设计(毕设源码+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于课程答疑系统的研究,现有研究主要集中在系统的基本功能构建与实现方面。在国内外,已经有不少课程答疑系统被开发出来,并且在学校和教......
  • clean-java-project-structure-实现秒杀系统
    clean-java-project-structure-意在clean&standard断WAN手撕了一个平平无奇的秒杀系统,crud过载,赶紧多看看源码缓缓秒杀系统实现-前言在互联网高速发展的时代,电商平台的各种促销活动层出不穷,其中“秒杀”活动以其低价、限时、限量的特点吸引了大量用户,成为电商平台吸......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现八
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现七
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......
  • java计算机毕业设计智能导诊系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今社会,医疗服务的需求不断增长且日益复杂。随着人口的增长、老龄化程度的加深以及人们对健康关注度的提升,医院面临着巨大的就诊压力。患者在......