-
场景4,分布式计算
查看全部 -
场景3,线程安全
查看全部 -
场景2,线程资源一致性
查看全部 -
场景1,线程资源持有
查看全部 -
线程资源一致性(取自JDBC):
如图所示,请求响应虚线框中Part1、 PartN代表你的一个会话中的N个程序都要去完成一些事情,他们整体串起来就是一个事务。
Part1更新客户信息,Part2更新订单的信息,Part3更新订单对应外部的交易流水号,Part4 支付回来。
以上操作必须保证原子性的同步更新,这种情况下 1~ N都会走 JDBC Connection
查看全部 -
线程资源一致性(取自JDBC):
如图所示,请求响应虚线框中Part1、 PartN代表你的一个会话中的N个程序都要去完成一些事情,他们整体串起来就是一个事务。
Part1更新客户信息,Part2更新订单的信息,Part3更新订单对应外部的交易流水号,Part4 支付回来。
以上操作必须保证原子性的同步更新,这种情况下 1~ N都会走 JDBC Connection 。
查看全部 -
线程资源持有:
编写一个程序的时候,多个 class 会依赖或使用同一份用户数据;这一份用户数据存在哪里比较好?
在程序中,每一个线程都是一个session,是客户端与服务端进行交互的一个过程;在这种情景中,只要程序执行的线程相同的情况下,所操作的用户就是相同的。
把用户数据在执行程序1时就创建一个 ThreadLocal的本地变量,放入到 ThreadLocalMap 的 x 变量中,在执行 程序2、程序3 时就可以拿到当前线程分配到的用户,而不会影响到其他线程的资源变量。
查看全部 -
ThreadLocal源码中AtomicInteger是干嘛用的,事后查一下。
查看全部 -
原子性,就是ab两个操作,要么都做,要么都不做。
一致性,a扣掉的钱和b加上的钱要一致。
隔离性,多事务并发的顺序,对结果并不影响。
持久性,对于a扣掉了钱,突然宕机了,b要能保持好一致性。
查看全部 -
老师的意思是原来是对add()方法加锁。实际生产中add()方法里可能存在对数据库即IO或者redis即内存等一些操作。如果对这一步进行加锁。每一次都要等这部分的时间。
而现在把锁加载了set上面了。就变成小面基了。只是操作了下set,往里面add一个元素而已。
查看全部 -
看一下这一行代码有点难度理解的时候,回头再理解一下。
查看全部 -
关于jdbc保持事务一致性,这些请求都是一个线程发生的,那我就用一个链接去做。要知道是不是一个线程发生的,可以通过ThreadLocalMap
查看全部 -
当x.remove()把Main线程里面的set值去掉了,那么本来因为set值之后不走initialValue()方法这回就要走了
查看全部 -
ThreadLocal的简单用法。不去get不会去触发intitialValue()这个方法
查看全部 -
threadLocal 含义、特点和使用场景。
查看全部
举报