【2021Java最新学习路线】java删除数据库一条记录

Java就是个多线程的世界

1. 类的线程安全

我们经常说类是线程安全的,类是线程不安全的。那么什么样的类才是线程安全的?

1.1 定义

多线程环境下,不管不同的线程如何使用和调度这个类,这个类总是表现出正确的行为。那么这个类就是线程安全的。
类的线程安全有两个关键点:
1.操作的原子性
2.内存的可见性。

如果在多个线程中共享状态,当同步机制不正确时,就会出现线程不安全的情况。

简单的程序应该不会有线程安全问题吧?

Q:什么情况下会有线程安全问题

A:当某个实现多线程的线程类中有实例变量时

ps:有状态,无状态对象是什么概念

有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。

无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象 .不能保存数据,是不变类,是线程安全的。

为什么有线程安全问题?必须要先了解计算机原理

当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。

举个例子

从内存读取1M数据 250微妙 = 250000纳秒
CPU读取一次内存 100纳秒

问:从内存中读取1M的int型数据由CPU进行累加,耗时要多久?

答:
1M的数据,Java里int型为32位,4个字节
共有1024*1024/4 = 262144个整数
CPU 计算耗时:262144 *0.6 = 157 286 纳秒

262144个整数从内存读取到CPU,需要耗时
内存读取耗时:262144*100+250000 = 26 464 400 纳秒

怎么解决线程安全问题?

线程安全问题,归根到底一句话:在多线程之间修改共享数据引起的

并发编程——从入门到成仙

为了让大家更好的理解学习线程并发,在这里给大家推荐一个由华为资深架构师Mark老师讲授的《并发编程——从入门到入仙》专题课程!从Java线程入门,到原子操作CAS与显式锁,再到并发安全,三天快速掌握并发编程核心知识,成为并发大神!

你以为这样就完了?更多并发相关资料,一并奉上!

总结:心得体会

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。

学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。

面试大厂,最基本的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

领取上述资料,只需点击这里即可免费下载

大厂Java架构核心笔记(适合中高级程序员阅读):

费下载](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**

大厂Java架构核心笔记(适合中高级程序员阅读):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值