![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ningdunquan
软件开发工程师
展开
-
数据结构—Java版链表相交问题的终极解决方案
【题目】 判断两个链表(链表可以有环,可以无环)是否相交,若相交,则返回相交节点,不相交则返回null 1.判断两个链表是否相交 【思路】 两个链表分三种情况: ①两个链表均为非环链表; ②两个链表一个为环,一个非环; ③两个链表均为环 第一种情况非环链表根据链表的定义,只需比较两个链表尾节点是否相同,若相同则一定相交,不同则一定不相交; 第二种情况由于链表的next指针永远原创 2015-09-13 19:55:09 · 416 阅读 · 0 评论 -
Java中的锁
一. Java的锁机制1.1 锁的类型乐观锁:读多写少的情况,读数据不加锁,写数据加锁。java中的乐观锁基本都是通过CAS操作实现的,CAS是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。悲观锁:悲观的意思是写多,每次去拿数据的时候都认为别人会修改,所以每次在读写数据的时候都会上锁,这样别人想读写这个数据就会block直到拿到锁。java中的悲观锁就是Synchroniz...原创 2018-04-12 11:01:46 · 247 阅读 · 0 评论 -
CAS原理
CASCAS:现代的处理器都包含对并发的支持,其中最通用的方法就是比较并交换(compare and swap),简称CAS。CAS是非阻塞的同步机制,锁解决的是阻塞的同步机制,但是锁需要借助操作系统,线程的挂起和恢复都有很大的开销。而CAS在不释放cpu的情况下进行同步,这是CAS的功能。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹...原创 2018-04-12 11:04:31 · 141 阅读 · 0 评论