传智博客JAVA基础第十三天

本文详细介绍了Java中多线程的实现方式,包括线程间的同步与通信机制,并讲解了从JDK5开始引入的新特性如ReentrantLock与Condition等高级同步工具。此外还概述了Java基础语法及面向对象的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.多线程通信
1.什么是通信
在多个线程同步的时候, 可以进行通信. 可以控制某个线程等待, 直到另一个线程通知它继续执行.
2.怎么通信
在同步代码中, 使用锁对象的wait()和notify()方法即可等待和通知.
这两个方法是定义在Object类中, 所有的类都会继承到这两个方法.
wait()方法是等待, 等到另一个线程调用notify()为止
notify()方法就是通知在同一对象上等待的一个线程继续工作, 如果有多个线程在同一对象上等待, 它会通知随机一个
notifyAll()方法可以通知在同一对象上等待的所有线程继续工作
二.JDK5的同步和通信
1.同步
JDK5之后加入了一个名为ReentrantLock的类, 这个类创建对象之后可以通过lock()和unlock()两个方法进行同步操作.
同一个锁对象的lock()方法在多个线程中只能执行一个, 直到调用lock()的那个线程执行了unlock(), 其他线程才能再lock()
注意: unlock()方法是必须执行的, 建议放在finally代码块中, 避免代码出现异常后无法解锁导致程序阻塞.
2.通信
JDK5之后加入了一个名为Condition的类, 这个类对象可以由ReentrantLock类的newCondition()方法获取.
多次调用newCondition()方法可以获取多个Condition对象.
线程需要等待的时候可以用Condition对象的await()方法, 不同的线程可以用不同的Condition对象等待
通知时可以调用指定的Condition对象的signal()方法, 唤醒指定的一条线程
JDK5之前是不能唤醒指定的一条线程的, JDK5之后优化了这个操作.
三.重点知识
1.搭建环境
安装JDK
配置环境变量(path, classpath)
2.常量
整数的几种进制
字符的几种码表, 特殊字符
3.变量
基本数据类型和引用数据类型
自动类型提升
强制类型转换
字符串串联
变量的生命周期和作用域
4.运算符
算数运算符: ++
逻辑运算符: &和&&, |和||
5.语句
选择结构: if, switch
循环结构: while, do while, for
6.函数
定义函数
调用函数
函数的重载
7.数组
定义数组
赋值, 取值
遍历数组
8.封装
私有化成员变量, 提供get和set方法
9.构造函数
定义构造函数
通过构造函数给成员变量赋值
了解自动生成构造函数的原理
10.this
构造函数中使用this()
在方法中用this来代表调用方法的对象
内部类中使用"外部类名.this.成员名"访问外部类的成员
11.static
静态变量和普通变量的区别
静态方法和普通方法的区别
12.继承
定义子类继承父类
了解子类实例化的过程, super()
向上转型, 强制类型转换
子类重写父类方法
13.Object
equals
toString
14.多态
了解什么是多态
15.抽象类和接口
了解它们的区别
16.内部类
匿名内部类
17.异常
了解异常的分类
会用两种方式处理异常
18.package
会定义包, 导入包
会编译运行带包的类
19.多线程
两种方式开启线程
多个线程同步
线程间通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值