Java线程知识点

news/2024/10/17 18:15:28/

目录

1.SynchronizedMap和ConcurrentHashMap的区别

2.Thread类中的yield()方法

1.概念

2.作用

3.线程池中的submit()方法和execute方法的异同

1.相同点

2.不同点

4.synchronized关键字

1.作用

2.存在问题及解决

5.synchronized最主要的使用方式

1.修饰代码块

2.修饰静态方法

3.修饰实例方法

6.线程的生命周期

7.线程的新建状态、就绪状态、运行状态

8.线程的阻塞状态-三种

等待阻塞

同步阻塞

其他阻塞

9.死亡状态

1.正常结束

2.异常结束

10.终止线程的四种方式

 1.正常结束

2.使用退出标志退出线程

3.interrupt结束

4.stop结束


1.SynchronizedMap和ConcurrentHashMap的区别

1.SynchronizedMap()在调用map方法时,会对整个map进行同步

2.ConcurrentHashMap是对map中的桶进行加锁,一个线程访问ConcurrentHashMap某个桶时,仍可以操作map。

2.Thread类中的yield()方法

1.概念

        是Thread类中的一个静态方法,用来释放当前CPU的执行权

2.作用

         调用此方法会暂停当前正在执行的线程对象,让其他具有相同优先级的线程执行

        只能保证当前线程放弃CPU执行器,不保证其它线程一定能占用CPU

3.线程池中的submit()方法和execute方法的异同

1.相同点

        两个方法都能够向线程池提交任务

2.不同点

        submit()定义在ExecutorService接口中,返回类型为持有计算结果的Future对象

        execute()定义在Executor接口中,返回类型为void

4.synchronized关键字

1.作用

        用来解决多线程操作共享数据的线程安全问题,synchronized实现了同步机制,保证任意时刻只有一个线程操作共享数据。

2.存在问题及解决

        Java的线程是映射到操作系统的原生线程之上的,若要挂起或唤醒一个线程,需要操作系统进行,操作系统实现线程之间的切换需要从用户态转换到内核态,这个转换需要相对较长的时间,时间成本较高,使得synchronized效率低。但Java1.6后从jvm层面对synchronized进行较大优化,来减少锁操作的开销。

5.synchronized最主要的使用方式

1.修饰代码块

        是同步代码块时使用的方法,指定了加锁对象,进入代码块之前需要获得锁

2.修饰静态方法

        是同步方法时使用的方法,为当前类加锁,访问静态synchronized方法占用的锁是当前类的锁

3.修饰实例方法

         是同步方法时使用的方法,为当前对象实例枷锁,访问非静态synchronized方法占用的锁是当前实例对象的锁

6.线程的生命周期

创建-new--->就绪-runnable--->运行-running--->阻塞-blocked--->死亡dead

7.线程的新建状态、就绪状态、运行状态

新建:使用new关键字创建一个线程之后,该线程就处于新建状态

就绪:调用start()方法后,进入就绪状态

运行:获得CPU执行权,就处于运行状态

8.线程的阻塞状态-三种

等待阻塞

执行了wait()方法,jvm会将该线程放入等待队列

同步阻塞

lock锁,若线程需要的同步锁被其他线程占用,则jvm会将该线程放入锁池(lock pool)

其他阻塞

sleep()\jion()方法

9.死亡状态

1.正常结束

        方法执行完成,正常结束

2.异常结束

        抛出一个Exception或Error

        调用该线程的stop()方法结束线程,但该方法容易导致死锁

10.终止线程的四种方式

 1.正常结束

        程序执行完成,线程自动结束

2.使用退出标志退出线程

        比如:设置boolean类型的标志,通过设置该标志控制while循环退出

3.interrupt结束

        调用interrupt()中断线程;注意要判断该线程是否处于阻塞状态,若处于阻塞状态,当调用线程的interrupt()方法时,会抛出 InterruptException 异常,一定要先捕获InterruptedException 异常之后通过 break 来跳出循环,才能正常结束 run 方法。

4.stop结束

        强制结束线程,易引起死锁


http://www.ppmy.cn/news/157657.html

相关文章

Amoi夏新数码移动音响G5

设置时间 按M结节到音乐模式下同时按住按钮6和7按钮6减,按钮7加

最新全志智能扫地机高性能芯片方案-MR133介绍

全志MR133是一款高性能、高集成度、高稳定性的工业级芯片,主要应用于智能扫地机器人。MR133量产稳定性一致性高,已经有国内一线扫地机客户开发使用,可做单目VSLAM/单目视觉+场景识别/激光LDS+单目视觉等多种方案。同时…

新咪咕Mg100、M101-强刷固件-刷机包

新咪咕Mg100、M101-3798m-xr819无线强刷当贝固件刷机包 固件介绍: 1、调出原厂固件屏蔽的wifi,开放原厂固件屏蔽的市场安装和u盘安装apk; 2、无开机广告,无系统更新,不在被强制升级;修改dns&#xff0…

C51单片机智能可控洗衣机设计

点击查看:C51单片机智能可控洗衣机设计 文件大小:49M 源码说明:带中文注释 开发环境:C编译器 简要概述: 本设计采用AT89S51单片机作为洗衣机控制系统的核心,硬件线路及控制程序的设计室该系统的重要组…

基于WT588F02B-16S语音芯片的智能水杯解决方案

我们都知道,水是生命之源,每天2000ml以上的饮水才能保证身体的水分平衡。然而,随着生活节奏的加快,许多人常常忘记喝水,等到想喝水的时候,身体内其实已经严重缺水。因此养成一个良好的饮水习惯至关重要。 市…

【超详细】C51单片机与HC-05蓝牙模块实现手机点灯

此文记录HC05蓝牙模块在C51单片机上的学习历程 文章目录 一、硬件连接(1)配置模式下接线(2)正常模式下接线 二、配置模式操作三、正常模式四、使用蓝牙通过蓝牙调试app点灯1.单片机代码烧录与蓝牙连接2.蓝牙调试app配置 一、硬件连接 HC05一共有6个引脚,此实验一般…

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨 无人机倾斜摄影是一种高效的三维测量技术,可用于建筑物、地形和基础设施等场景的快速、精确测量。然而,在进行无人机倾斜摄影时,出现模型高程偏差大的问题是很常…

江苏魔百盒M301H_Hi3798MV300-300H-310芯片通刷-免费卡刷固件包

江苏魔百-盒M301H_Hi3798MV300-300H-310芯片通-刷-免费卡刷固件包 本固件针对江苏版魔百盒M301H-Hi3798MV300和Hi3798MV300H芯片-华为万物互联世界logo和动画, 红外、蓝牙、语音遥控版免拆卡刷包和救砖强刷包固件-支持最新RTL8822CS无线及以前无线型号:…