Synchronize是重量级锁吗?是互斥锁吗? 它的实现原理? 前言 线程安全是并发编程中的重要关注点,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多个线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时 ...
分类:
编程语言 时间:
2020-03-22 19:58:58
阅读次数:
296
三次握手(three-way handshaking) 1.背景:TCP位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。 2.原理: 1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。 2)接收方接收后,回传一个带有S ...
分类:
其他好文 时间:
2020-03-21 20:55:29
阅读次数:
66
Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景? 1:Vector Vector的底层的实现其实是一个数组 protected Object[] elementData; 他是线程安全的,为什么呢? 由于经常使用的add()方法的源码添加synchronize ...
分类:
其他好文 时间:
2020-03-16 09:57:39
阅读次数:
49
原文: https://blog.csdn.net/zc19921215/article/details/84780335 首先来说下synchronize和Lock的区别: 两者都是锁,用来控制并发冲突,区别在于Lock是个接口,提供的功能更加丰富,除了这个外,他们还有如下区别: synchron ...
分类:
其他好文 时间:
2020-03-15 22:34:17
阅读次数:
90
synchronized 锁,对于非静态方法,默认为this,对于静态方法,默认为 该类的运行时类实例. class Number { public synchronized void getOne(){ System.out.println("one"); } public synchronize ...
分类:
编程语言 时间:
2020-03-14 11:01:09
阅读次数:
69
三次握手过程中seq和ack的值: 一个TCP连接的建立是通过三次握手来实现的 1. (A) –> [SYN] –> (B) 假如服务器B和客户机A通讯. 当A要和B通信时,A首先向B发一个SYN (Synchronize) 标记的包,告诉B请求建立连接. 注意: 一个 SYN包就是仅SYN标记设为 ...
分类:
其他好文 时间:
2020-03-08 19:52:37
阅读次数:
100
TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手:服 ...
分类:
其他好文 时间:
2020-01-05 15:48:17
阅读次数:
117
同步锁 使用 java关键字synchronize 来做同步处理时,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。 ReentrantLock 就是一个普通的java类,它是基于 AQS(AbstractQueuedSynchronizer)来实现同步锁。AQS 是 Ja ...
分类:
其他好文 时间:
2019-12-28 23:13:12
阅读次数:
144
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq ...
分类:
其他好文 时间:
2019-11-28 21:15:10
阅读次数:
73
JUC是java.util.concurrent的缩写,java.util.concurrent是在并发编程中使用的工具类。 在以前的解决并发问题,一般是通过Synchronize关键字,现在可以通过juc下的工具类,来解决多线程并发问题。 首先写有个demo:使用synchronized进行上锁 ...
分类:
编程语言 时间:
2019-11-23 23:39:36
阅读次数:
97