美文网首页
2.Thread和Runnable

2.Thread和Runnable

作者: 段段小胖砸 | 来源:发表于2021-08-23 14:55 被阅读0次

创建线程的两种方法:

  • 继承Thread,Thread也实现了Runnable
  • 实现Runnable

java线程的特征和状态

  • 所有的Java 程序,不论并发与否,都有个名为主线程的Thread 对象。执行该程序时, Java虚拟机( JVM )将创建一个新Thread 并在该线程中执行main()方法。这是非并发应用程序中唯一的线程,也是并发应用程序中的第一个线程
  • Java中的线程共享应用程序中的所有资源,包括内存和打开的文件,快速而简单地共享信息。但是必须使用同步避免数据竞争。
  • Java中的所有线程都有一个优先级,这个整数值介于Thread.MIN_PRIORITY(1)和Thread.MAX_PRIORITY(10)之间,默认优先级是Thread.NORM_PRIORITY(5)。线程的执行顺序并没有保证,通常,较高优先级的线程将在较低优先级的钱程之前执行。
  • 在Java 中,可以创建两种线程:守护线程。非守护线程。
    区别在于它们如何影响程序的结束。Java程序结束执行过程的情形:
    • 程序执行Runtime类的exit()方法, 而且用户有权执行该方法。
    • 应用程序的所有非守护线程均已结束执行,无论是否有正在运行的守护线程。
      守护线程通常用在作为垃圾收集器或缓存管理器的应用程序中,执行辅助任务。在线程start之前调用isDaemon()方法检查线程是否为守护线程,也可以使用setDaemon()方法将某个线程确立为守护线程
  • Thread.States类中定义线程的状态如下:
    • NEW:Thread对象已经创建,但是还没有开始执行。
    • RUNNABLE:Thread对象正在Java虚拟机中运行。
    • BLOCKED : Thread对象正在等待锁定。
    • WAITING:Thread 对象正在等待另一个线程的动作。
    • TIME_WAITING:Thread对象正在等待另一个线程的操作,但是有时间限制。
    • TERMINATED:Thread对象已经完成了执行。
      getState()方法获取Thread对象的状态,可以直接更改线程的状态。

Thread类和Runnable 接口

  • Runnable接口只定义了一种方法:run()方法。这是每个线程的主方法。当执行start()方法启动新线程时,它将调用run()方法。
  • Thread其他常用方法
    • interrupt():中断目标线程,给目标线程发送一个中断信号,线程被打上中断标记。
    • sleep(long ms):该方法将线程的执行暂停ms时间。
    • join():暂停线程的执行,直到调用该方法的线程执行结束为止。可以使用该方法等待另一个
    • Thread对象结束。

Callable

Callable 接口是一个与Runnable 接口非常相似的接口。Callable 接口的主要特征如下。

  • 接口。有简单类型参数,与call()方法的返回类型相对应。
  • 声明了call()方法。执行器运行任务时,该方法会被执行器执行。它必须返回声明中指定类型的对象。
  • call()方法可以抛出任何一种校验异常。可以实现自己的执行器并重载afterExecute()方法来处理这些异常。

相关文章

  • 2.Thread和Runnable

    创建线程的两种方法: 继承Thread,Thread也实现了Runnable 实现Runnable java线程的...

  • 线程相关

    1.创建线程的方式?通过runnable和Thread 2.Thread类中的start()和run()方法有什么...

  • kotlin小笔记之 post ,postDelayed的写法

    post 和postDelayed 的写法 带Runnable和不带Runnable的写法

  • Runnable和Thread

    Runnable接口 衍生知识点:@FunctionalInterface 函数式接口 Thread类介绍 ta...

  • Runnable和Thread

    如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。 实现...

  • Thread 和 Runnable

    Thread 和 Runnable 1. 简介 Java 主要是通过 java.lang.Thread 类以及 j...

  • Runnable和Callable

    简介: 这两个接口都可以代表一个任务,可以被多线程执行。Runnable可以同时被Thread和ExecutorS...

  • Runnable和Callable

    两者最大的区别就是:实现Callable接口的任务线程能返回执行结果,而实现Runnable接口的任务线程不能返回...

  • Android Callable与 Future

    Callable和Future Callable接口类似于Runnable,但是Runnable不会返回结果,并且...

  • 如何使用Handler

    什么是Handler? Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable...

网友评论

      本文标题:2.Thread和Runnable

      本文链接:https://www.haomeiwen.com/subject/jhdabltx.html