深深的码丨Java Thread 透析

本文详细介绍了Java中的线程相关概念,包括线程的两种类型、创建线程的两种方式、线程状态变化以及Thread类的关键方法。讨论了线程的启动、中断、同步与协作,并分析了死锁的产生条件及避免策略。此外,还对比了不同类型的锁,如公平锁/非公平锁、独享锁/共享锁等。
摘要由CSDN通过智能技术生成

Thread 相关概念

线程是系统资源分配的最小单位,它被包含在进程之中,是进程中的实际运作单位。JVM 允许应用程序同时运行、执行多个线程,每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行

在Java中线程分为两类:User Thread(用户线程)Daemon Thread(守护线程)

在JVM启动时候会调用main函数,main函数所在的线程是就是一个用户线程,在此线程中新建的线程默认都是用户线程,但通过 Thread.setDaemon(true) 可设置守护线程(需在 Thread.start() 前调用)。守护线程是JVM中所有非守护线程的保姆,守护线程最典型的应用就是 GC (垃圾回收器)

只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作,当JVM中的最后一个用户线程结束时,守护线程随着JVM一同结束


Thread 创建方式

创建线程的方式有两种:继承 Thread 类实现 Runnable 接口

Thread 类本身也是通过实现 Runnable 接口来完成创建的。创建线程时可以为线程指定名称,名称可重复。如果在创建线程时未指定名称,则会为其生成新名称

继承 Thread 类创建与启动:

     class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }

       
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MobMsg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值