java 多线程

多线程:
多任务执行,如果没有多任务,就不需要多线程
多线程的创建方式:
1. 继承Thread,重写run()方法 + start()开启线程
2. 实现Runnable接口,重写run()方法
推荐使用的优点(1.避免单继承的局限性 2.实现资源供享)
3. 实现Callable接口,重写call()方法
优点:可以返回值,可以抛出异常
缺点:使用麻烦
线程状态:5个
1. 新生状态: 创建线程 new Thread()
2. 就绪状态: 调用start(),就绪队列中的线程 等待CPU的调度
3. 运行状态:cpu把时间分给那个线程,这个线程才会运行
4. 堵塞状态:sleep()…
5. 终止状态:结束,死亡

注意:
1. 一个线程一旦进入终止状态,没有办法
恢复,重新创建也是新的线程
2.一旦进入阻塞状态,不能直接恢复到运行状态,恢复到就绪状态

一个线程如何进入到死亡状态?
1.正常执行完毕 2.调用destroy() , stop() 3.通过添加标识判断--------推荐

一个线程如何进入到就绪状态?
1. 调用start()方法
2. 阻塞解除
3. yield 礼让
4. 线程切换

一个线程如何进入阻塞状态?
1. sleep()
2. join()
3. wait()
4. io操作

sleep(毫秒数) 线程睡眠 | 休息
抱着资源睡觉,告诉CPU在这个时间中不要把资源分配给我这个线程,因为处于阻塞状态,到时间了就恢复到就绪状态,这个时候cup才能把资源分配给我
sleep()的使用不要在如何同步环境下,如何在同步下使用了,在休眠途中,是不会释放对象锁的
(可以模拟网络延迟 放大问题的可能性)

yield 礼让线程 高风亮节(Thread.yield();)
把CPU的资源让出来,让cup重新分配,但是有可能又选择了原线程,可以选择其他线程,给其他线程能够获取资源的机会

合并线程,插队线程
join() 处于阻塞状态的方法
join(ms)等待指定秒数,到点了就阻塞等待了

线程的优先级别:1~10
默认一个线程的优先级别是: 5
MAX_PRIORITY 最大优先级: 10
MIN_PRIORITY 最小优先级: 1
NORM_PRIORITY 默认: 5
setPriority() 设置线路优先级
getPriority () 获取线路优先级
优先级只能控制概率问题,不能决定角色到底谁先执行

获取线程状态
Thread.State getState() 返回该线程的状态

控制线程安全问题:
前提:当多个线程同时操作同一个资源的时候,才有可能出现线程不安全问题
办法:使用同步锁 synchronized,控制多线程执行时,某一段重要的代码,排队执行,其他代码可以同时进行,又能提高效率,又能控制安全
使用方法
同步方法:在方法上使用synchronized关键字
- 成员方法:对象,类,资源
- 静态方法:静态内容是属于类的,锁这个静态方法相当于锁类(比较简单,但是范围太大,可能效率会低)
同步块
是synchronized(this | 类 | 资源){
}
- this: 锁对象
- 类名.calss :只有一个,不变的对象内容,在类第一次加载内存就存在了
- 资源:成员实现

注意:
同步一定要同步不变的内容,变的内容锁不住,自定义类的对象地址
锁的范围太大了,效率太低,锁的范围太小,锁不住

难点:锁谁,this | 资源 | 类 | 方法 锁多大范围

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值