美文网首页
线程小知识

线程小知识

作者: 任未然 | 来源:发表于2019-10-14 23:23 被阅读0次

    有时间会持续更新!

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

    • 进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。

    二、创建线程有几种不同的方式?你喜欢哪一种?为什么?

    有三种方式可以用来创建线程:

    • 继承Thread类
    • 实现Runnable接口
    • 应用程序可以使用Executor框架来创建线程池

    实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。

    三、概括的解释下线程的几种可用状态。

    线程在执行过程中,可以处于下面几种状态:

    • 就绪(Runnable):线程准备运行,不一定立马就能开始执行。
    • 运行中(Running):进程正在执行线程的代码。
    • 等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
    • 睡眠中(Sleeping):线程被强制睡眠。
    • I/O阻塞(Blocked on I/O):等待I/O操作完成。
    • 同步阻塞(Blocked on Synchronization):等待获取锁。
    • 死亡(Dead):线程完成了执行。

    四、同步方法和同步代码块的区别是什么?

    在Java语言中,每一个对象有一把锁。线程可以使用synchronized关键字来获取对象上的锁。synchronized关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)。

    相关文章

      网友评论

          本文标题:线程小知识

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