![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
weixin_46401390
这个作者很懒,什么都没留下…
展开
-
Lock与Synchronized的区别
一,Lock是java.util.concurrent包下的类,而Synchronized是java的一个关键字 Lock通过tryLock方法来获取锁,release方法来释放锁 Synchronized是对代码块或者方法进行修饰,当进入到方法或者代码块则获取锁,方法执行完毕或者异常抛出则释放锁 二,Lock是非阻塞式的,若获取不到锁则返回false继续执行后边的逻辑,Synchronized是阻塞式的,当获取不到锁时会一直处于等待获取锁的状态,直到之前获取到锁的线程释放掉了锁。 ...原创 2021-03-28 12:12:54 · 57 阅读 · 0 评论 -
volatile详解
特性: 1、可见性 每个线程都是将共享变量复制到自己的高速缓存空间里的,是每个线程修改后,然后再同步到内存空间。volatile会让线程直接读取内存空间里的变量值,从而解决由于高速缓存空间带来的并发问题 2、有序性 java执行会存在指令重排序的情况,执行第二行代码时不一定会等待第一行代码完全执行完毕,所以会存在一定的并发问题。 volatile会确保变量之前的代码都执行完毕后才执行。 3、volatile不能完全确保线程安全。 因为java执行时不能确保原子性,例如: i=i+1 会分解成3步: (1)原创 2021-03-05 11:21:51 · 39 阅读 · 0 评论 -
网络编程
1、tcp和udp的区别 TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,因此不会出现丢失或乱序。 UDP:是无连接的数据报服务,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失、重复、乱序,但具有较好的实时性,UDP段结构比TCP的段结构简单,因此网络开销也小。 2、tcp连接建立的时候3次握手,断开连接的4次握手的具体过程 (1)建立连接采用的3次握手协议,具体是指: l 第一次握手是客户端connect连接到server l 第二次server ac原创 2021-03-03 22:20:14 · 44 阅读 · 1 评论 -
算法
一、hash算法 例如将员工信息分16个服务器,通过hash算法,hash(员工的工号)%16,均匀的分配到了16台服务器。 缺点:若要扩容成17或者缩容成15,则会影响员工的分布,hash(员工的工号)%15的值与之前的hash值存在很大的差异。 二、一致性hash算法 将16个节点放入一个圆形中,设置每个节点的hash值,按顺时针排序,hash(员工的工号)与每个节点的hash值进行比较,然后放置每个节点范围内。 优点:即使新增或者减少节点不会大范围影响,只会影响1个节点的分布 ...原创 2021-03-03 22:12:03 · 54 阅读 · 1 评论 -
elastic search
一、python搭建 安装地址:https://www.python.org/downloads/release/python-391/ 选择要安装的版本: 解压后: 配置环境变量: 输入python有如下界面则说明环境搭建成功: 定义方法并执行方法: 二、开发工具下载 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows 三、语法学习 https://www.runoob.com/python3/py原创 2021-03-03 22:02:05 · 65 阅读 · 1 评论