- 博客(10)
- 收藏
- 关注
原创 零基础掌握Java多线程(六):Java的线程安全
如果多线程环境下,代码达到预期结果(如没有出现数据错误、丢失更新等问题),即该线程不论是一个还是在多线程环境下,则可视为线程安全。小明和一群人(多线程)分工计算很多题,最后得到的结果和小明自己(单线程)算结果一致,就是正确的。线程指的是可能会产生。死锁可以视作是线程不安全中的一种特定极端情况。
2025-11-11 17:56:52
711
原创 零基础掌握Java多线程(五):死锁
本文介绍了死锁的定义及其四个必要条件:互斥、持有且等待、不可强占和循环等待。通过三个典型场景(单线程重复加锁、两线程交叉争锁、N线程环形争锁)分析了死锁产生的过程,并提供了Java代码示例说明两线程死锁情况。文章还重点讲解了可重入锁(ReentrantLock)机制,包括synchronized实现可重入性的锁计数器和线程ID检查原理,以及如何手动实现可重入锁。最后对比了synchronized的隐式可重入性与ReentrantLock的显式管理方式,强调可重入锁对避免死锁的重要作用。
2025-10-16 19:00:00
1016
原创 零基础掌握Java多线程(四):线程同步和锁机制
在Java中,使用synchronized关键字可以synchronized的核心作用就是确保能够执行被它修饰的代码(方法或代码块),其他线程必须等待当前线程释放锁后才能继续执行。synchronized的一个房间(共享资源)的只允许拿着钥匙进入,等到这个人办完事才会交给下一个人。保证了相互做的事不会被干扰,即线程安全。
2025-10-14 19:00:00
1580
原创 零基础掌握Java多线程(三):控制线程状态的关键方法
本文总结了Java多线程编程中的核心概念和关键方法。主要内容包括:1.线程创建两种方式:继承Thread类或实现Runnable接口,推荐后者;2.线程控制方法:start()启动线程,sleep()暂停线程,yield()让出CPU,join()等待线程结束;3.线程协作机制:wait()/notify()实现线程间通信,需配合synchronized使用;4.线程中断机制:通过interrupt()设置中断标志,线程需自行检查处理。文章通过代码示例详细演示了各方法的使用场景和注意事项,强调多线程编程中的
2025-10-02 19:00:00
792
原创 零基础掌握Java多线程(二):Thread核心属性
本文介绍了Java线程的核心属性和基本状态管理。主要内容包括:1.线程ID的获取方法;2.线程六种生命周期状态(新建、可运行、阻塞、等待、超时等待、终止)及其转换条件;3.线程命名与名称获取;4.判断线程存活状态的方法;5.线程优先级的设置与获取(1-10范围);6.前后台线程(守护线程)的设置与作用差异;7.线程中断机制的工作原理及不同状态下的中断行为。文章通过代码示例展示了这些特性的具体使用方法,并强调线程调度优先级仅作为建议,实际执行顺序受操作系统影响。
2025-09-13 19:00:00
549
原创 零基础掌握Java多线程(一):进程与线程、线程的创建
通过重写run()方法实现线程的具体逻辑。run()方法是线程的执行体,是线程的核心。定义了线程启动后要执行的任务内容。可以通过继承Thread类并重写run()方法,或实现Runnable接口的run()方法来实现。Runnable接口是重写run(),Callable接口是重写call()。
2025-09-09 19:00:00
973
原创 C/C++ 转 Java 的数据结构初阶对比指南
【1】装箱/装包:把基本数据类型变为包装类型。Java 中的基本数据类型(如 int、double 等)是原始类型,而包装类型(如 Integer、Double 等)是类。例如: Integer i = Integer.valueOf(i); //显示装箱,通过包装类的静态方法 valueOf() 转换 Integer n = 2025; //自动装箱 ,编译器自动调用 Integer.valueOf() 方法【2】拆箱/拆包:把包装
2025-07-26 19:00:00
1274
原创 面向对象C++转Java
Java和C++在面向对象编程上存在显著差异:Java采用自动垃圾回收机制,所有对象都在堆上创建,无需手动释放内存;继承仅支持单继承但可通过接口实现多继承,且必须显式调用父类构造方法;多态默认支持,无需virtual关键字;权限控制默认包级访问;不支持运算符重载(除字符串+操作),改用方法实现类似功能。这些设计使Java更易用但牺牲了部分灵活性。开发者需注意字符串比较用equals()、常量用final修饰等编码习惯差异。
2025-07-15 19:00:00
1954
原创 C转JAVA语法极简教程
本文介绍了Java编程基础要点,主要包括:1. Java程序创建规则:类与文件名一致、main方法规范;2. 输入输出操作:Scanner类的使用、数据类型读取方法;3. 数据类型及转换:8种基本类型、初始化要求、类型提升规则;4. 运算符与逻辑控制:算术/逻辑/位运算符、条件/循环语句;5. 方法定义与数组:方法重载特性、一维/二维数组的声明和遍历。文章还对比了Java与C语言在语法上的主要差异,如变量初始化、数据类型范围、字符串处理等方面。
2025-07-10 19:00:00
943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1