摘要: 1、OSI 七层模型:应用层、表示层、会话层、传输层、网络层、链路层、物理层(口诀:因 婊 会 传,网恋无) 2、TCP/IP (协议族) 应用层:FTP、SMTP、http、DNS、Telnet 传输层:TCP、UDP 网络层:IP。。。 链路层:ARP、RARP 重点:应用层、传输层、网络层 3 阅读全文
posted @ 2020-11-07 23:06 45°仰望星空 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 管程和信号量这两个同步原语在 Java 语言中的实现,理论上用这两个同步原语中任何一个都可以解决所有的并发问题。那 Java SDK 并发包里为什么还有很多其他的工具类呢?原因很简单:分场景优化性能,提升易用性。 其中有个非常普遍的并发场景:读多写少场景。实际工作中,为了优化性能,我们经常会使用缓存 阅读全文
posted @ 2019-10-25 11:52 45°仰望星空 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 一、springboot项目: 1、选中service层需要测试的类右击go to——Test——create new test——在下方选中要测试的方法,点OK 2、项目的test补录下创建一个测试父类AbstractTest 1 package com.vhr.test; 2 3 import 阅读全文
posted @ 2019-10-24 17:27 45°仰望星空 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 推荐并发大师 Doug Lea《Java 并发编程:设计原则与模式》一书。 用锁的最佳实践: 永远只在更新对象的成员变量时加锁; 永远只在访问可变的成员变量时加锁; 永远不在调用其他对象的方法时加锁。 tryLock()方法相关参考: https://www.cnblogs.com/donefive 阅读全文
posted @ 2019-10-22 17:00 45°仰望星空 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 方法调用栈结构: 每个线程都有自己独立的方法调用栈: 这种局部变量不共享,从而保证线程安全的技术,称为线程封闭技术。 案例:数据库连接池。采用线程封闭技术,线程获取的数据库连接connection,是独立的,在这个线程在关闭获取的这个connection之前,不会再分配给其他线程。 思考:递归调用太 阅读全文
posted @ 2019-10-22 11:40 45°仰望星空 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 1、为什么要使用多线程? 性能的核心指标: 延迟,指的是发送请求到收到响应的过程的耗时。延迟越短,程序执行时间越短,性能越好。 吞吐量,指的是单位时间能够处理的请求数。吞吐量越大,意味着程序能处理的请求越多,性能也就越好。 所以,要提升性能,就是要 降低程序的延迟。提高程序的吞吐量。 两个方向:1. 阅读全文
posted @ 2019-10-21 17:12 45°仰望星空 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 一、java线程生命周期 处于休眠状态(blocked、waiting、timed_waiting)的线程,没有CPU的使用权。 二、Runnable状态和休眠状态之间的状态转换 三、Runnable状态到Terminated状态 线程执行完run()方法后,会自动切换到terminated状态; 阅读全文
posted @ 2019-10-21 15:16 45°仰望星空 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 所谓管程,指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。 1.管程是一种概念,任何语言都可以通用。2.在java中,每个加锁的对象都绑定着一个管程(监视器)3.线程访问加锁对象,就是去拥有一个监视器的过程。如一个病人去门诊室看医生,医生是共享资源,门锁锁定医生,病人去看医生,就是访问医 阅读全文
posted @ 2019-10-18 15:09 45°仰望星空 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 不能用账户余额this.balance和this.password做为锁对象。 这两个对象都是可变对象,一但对他们进行赋值就会变成新的对象,加的锁就失效了。不能把可变的对象当成一把锁 Integer String Boolean相关的知识:Integer会缓存-128~127这个范围内的数值,Str 阅读全文
posted @ 2019-10-18 11:06 45°仰望星空 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 并发编程的两个问题:缓存导致的不可见,编译优化导致的有序性问题 解决:禁用缓存,禁用编译优化。但是总不能所有程序都禁用吧,这样程序的性能就堪忧了。 Java内存模型:按需禁用缓存,禁用编译优化。 从本质上来讲,Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法。具体来说,这些方法包括v 阅读全文
posted @ 2019-10-11 23:13 45°仰望星空 阅读(226) 评论(0) 推荐(0) 编辑