`
不笑不是不开心
  • 浏览: 11378 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java面试必备之多线程

阅读更多

     Java多线程

一、线程

    线程:可以并发执行多个任务。

二、线程创建方式

    线程有两种创建方式。

方式一:直接继承Thread并重写run方法。需要注意,启动线程要调用start方法,start方法调用完毕后,线程纳入到线程调度中,线程调度会分配CPU时间片来运行该线程,当线程运行时会自动调用run方法。

第一种创建线程方式有两个不足:

 1:由于要求继承Thread类,那么在将来项目中,就有可能出现继承冲突。

 2:由于继承了Thread后需要重写run方法来定义线程要执行的任务,这就导致线程与任务有一个强耦合关系,当前线程就只能做run方法中定义的任务,其他事情做不了,这不利于线程的重用。

第二种创建线程的方式

 定义一个类并实现Runnable接口来单独定义线程要执行的任务。

此外,还可以使用匿名内部类实现两种创建线程的方式。

三、相关API

Thread提供了一个静态方法static Thread currentThread(),该方法是用来获取运行这个方法的线程。 java中所有的代码都是由线程运行的,当需要获取某个线程时,只需使它执行上述方法即可。在哪个方法中定义代码,获取的就是运行该方法的线程。

Long getId();线程ID

String  getName();获取名字

int  getPriority();查看优先级

boolean isAlive();是否活着

    boolean isDaemon();是否为守护线程

    boolean isInterrupted();是否被中断了

四、操作线程

1)线程的优先级

线程不能干涉线程调度的工作,即:线程不能决定时间片分配给哪个线程,也不能决定分配的具体次数。但是可以通过改变线程的优先级来获取更高的CPU时间片几率。线程优先级分为10个等级,对应数字为1-10,其中1最低,5默认,10最高。理论上优先级越高的线程,获取CPU时间片的次数多。

(2)线程的休眠

Thread提供了静态方法 static void sleep(long ms),该方法会将执行该方法的线程进入阻塞状态执行的毫秒数,在该毫秒数内不会进入就绪状态,醒来后并不能保证进入运行状态,只能保证进入就绪状态。

(3)线程的加入

void join(),线程提供了一个方法join,该方法允许一个线程在另一个线程上等待,直到它的工作都结束,才继续当前线程的后续工作。否则一直处于阻塞状态。

(4)线程的中断

         可以使用Thread类中的interrupt()方法使线程离开run()方法。

(5)线程的同步

         线程安全问题来源于两个线程同时存取单一对象的数据。

         当一个方法被synchronized修饰后,该方法称为"同步方法",意思是说当前方法不能同时被两个以上的线程执行。多线程并发安全问题的本质就是多个线程发生了""

情况。有效缩小同步范围可以在保证并发安全的前提下提高并发效率。

   同步块需要指定同步监视器(上锁的对象),若希望该同步块有效果,必须保证多个线程看到的锁对象相同,通常使用this即可。

 互斥锁

 synchronized修饰的是两段代码,但是锁对象相同。那么这两段代码就是互斥的。

<!--EndFragment-->
分享到:
评论

相关推荐

    JAVA100题 java面试必备 java面试

    Java编程语言在面试中是必不可少的话题,特别是在...以上知识点是Java面试中常见的问题,掌握这些知识对于准备Java面试至关重要。面试时,候选人还需要展示问题解决能力、编程技巧以及对Java框架和其他相关技术的理解。

    Java程序员面试宝典,Java面试必备PDF文件

    5. **多线程**:Java提供了丰富的多线程支持,面试中可能涉及线程的创建、同步机制(synchronized、Lock)、死锁、线程池以及并发工具类(ExecutorService、CountDownLatch、CyclicBarrier等)。 6. **JVM**:深入...

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

    │ │ 9.JAVA并发编程之多线程并发同步业务场景与解决方案.wmv │ │ │ ├─10.微服务架构之Spring Cloud Eureka 场景分析与实战 │ │ 10.微服务架构之Spring Cloud Eureka 场景分析与实战.wmv │ │ │ ├─11....

    java并发, java多线程知识点总结,最全思维导图,互联网大厂面试必备

    java并发, java多线程知识点总结,最全思维导图,互联网大厂面试必备

    java面试必备资料大全

    ### Java面试必备知识点详解 #### 一、Java虚拟机与平台无关性 **知识点1:Java虚拟机(JVM)** - **定义**:Java虚拟机(JVM)是一种能够执行Java字节码的虚拟机进程。Java源代码经过编译后会变成JVM能够识别并...

    必备的Java面试宝典

    Java编程语言作为软件开发领域的主流语言之一,其面试题库涵盖了广泛的领域,包括基础语法、面向对象编程、集合框架、多线程、网络编程、异常处理、IO流、设计模式等。以下是一些核心知识点的详细说明: 1. **基础...

    JAVA面试必备必知必会

    Java面试必备必知必会,这是每个Java开发者在求职或者职业发展中都需要面对的主题。Java面试通常涵盖以下几个核心领域:Java基础、集合框架、多线程并发以及虚拟机(JVM)知识。以下将对这些关键知识点进行详细阐述...

    Java学习、面试必备

    - 多线程:Java提供了Thread类和Runnable接口来实现并发执行,理解和掌握线程同步、锁机制是高级Java开发的关键。 - 集合框架:深入学习Set、List、Map接口及其实现类,如HashSet、ArrayList、LinkedList、HashMap...

    java面试必备文档

    Java面试必备文档涵盖了许多核心Java概念,以下是针对标题和描述中的关键知识点的详细说明: 1. **面向对象的特征** - **抽象**:抽象是将复杂问题简化,关注主要功能,忽略次要细节。在Java中,这通常通过接口和...

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

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

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

    03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个Java经典的Main方法面试题!.pdf 06 10个Java经典的String面试题!.pdf 07 15道经典的Tomcat面试题!.pdf 08 15道面试常问的...

    2023黑马面试宝典-Java面试宝典大全-java面试宝典黑马

    4. **多线程**:Java提供了丰富的多线程支持,面试中会考察线程的创建、同步机制(synchronized、Lock)、死锁、线程池等。理解线程状态转换图,掌握线程安全问题的解决方案,如volatile、ThreadLocal等,有助于在...

    面试通关:史上最全的Java面试题合集文件大小92M包含56个pdf.zip

    7、 面试必备之乐观锁与悲观锁.pdf 8、 设计模式面试专题.pdf 9、 深入了解性能优化.pdf 10、 数据库.pdf 11、 最全Java面试题库-合并文档.pdf 12、 Activemq消息中间件面试专题.pdf 13、 Dubbo服务框架面试题及答案...

    JAVA面试题 面试必备!!

    线程同步是多线程编程中的关键问题之一,Java提供了多种方法来实现线程间的同步: - **wait()**: 使当前线程进入等待状态,并释放对象锁。 - **sleep()**: 让当前线程暂停指定的时间,但不会释放对象锁。 - **...

    java程序员必备——比较全的Java面试题

    Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面。这份资源显然为准备Java面试的程序员提供了...

    Java工程师必备面试题【多线程、反射、类加载器、JVM、泛型、异常处理、注解、面向对象编程、集合、IO流、序列化】

    内容概要:以上列出的Java面试题涵盖了Java语言的基础知识、面向对象编程、集合、IO流、多线程、反射、类加载器、JVM、序列化、泛型、异常处理、注解等多个方面。 适用人群:以上Java面试题适用于准备Java开发...

    java面试宝典2017版

    6. **多线程与并发**:Java提供了丰富的多线程API,如Thread,Runnable,ExecutorService等。掌握同步机制(synchronized,Lock,volatile等)和并发工具类(Semaphore,CyclicBarrier,CountDownLatch等),是提升...

    Java面试必备208题.zip

    "Java面试必备208题.zip"这个压缩包文件提供了全面的面试准备资料,其中的"Java面试必备208题.pdf"涵盖了Java语言的各个方面,包括基础概念、面向对象、集合框架、多线程、IO流、网络编程、异常处理、JVM内存模型...

    Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题笔试WORD资料汇总(19个).zip

    Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题 JAVA笔试面试WORD资料汇总(19个): 2014年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者...

Global site tag (gtag.js) - Google Analytics