【Java SE进阶】Day06 线程、同步
2024-10-21 02:43:02
一、线程
1、多线程原理
- 流程图
- 内存图解说明
- 创建线程的方式
- 继承Thread类
- 实现 Runnable接口
2、继承Thead类
3、实现Runnable接口
- 实现接口,重写run方法
最终均需要通过Thread类实现多线程
3、Thread和Runnable的区别
- 前者不是和资源共享,Runnable易于实现资源共享
- 实现Runnable接口的优势
- 适合多个线程共享统一资源
- 避免单继承局限性
- 每次运行启动两个线程:main和垃圾回收线程
4、匿名内部类方式创建
- 匿名内部类实现 Runnable接口,并重写run方法
接口实现赋值给接口(匿名内部类)
二、线程安全
1、概念:
- 每次运行结果相同
- 多个线程同时执行写操作,就需要考虑线程同步,否则影响线程安全
2、线程同步
- 解决多个线程访问同一资源的安全性问题,通过同步机制synchronized解决
- 实现方式
- 同步代码块:synchronized(lock)关键字
- 同步方法:synchronized修饰的方法,被重写的run方法调用
- Lock锁机制:更能体现面向对象
- lock():同步加锁
- unlock():释放同步锁
三、线程状态
1、概述
- Thread.State的枚举中给出六种线程状态
最新文章
- 详解 iOS 上机题!附个人见解
- ORACLE 查看数据库中有哪些表
- secureCRT如何远程桥接CentOS.
- 【转】最实用的IT类网站及工具大集合
- java 如何连接MySql数据库
- JsRender系列demo(4)-if else
- HBase 的安装与配置
- photoswipe
- FreeImage裁剪示例
- CSS float 属性
- Google reCAPTCHA 人机身份验证
- 破解iframe微信推文(图片)防盗链
- PIL遇到问题解决
- 关于iframe的一些操作
- PAT 1124 Raffle for Weibo Followers
- ELMO模型(Deep contextualized word representation)
- AI-CBV写法
- quartz整合spring框架service层对象注入为null解决方案
- python---django中orm的使用(1)
- tsung执行时报Can't locate Template.pm的解决