多线程计算11111

分布式计算1111

## 线程资源持有

## 线程一致性

## 先吃安全性

## 分布式计算

## 总结


PART1-N中间可能存在事务,在JDBC中要保证一个事务是在一个线程中去维护的。
用户数据可以放在ThreadLocal变量里。如果这3个程序是一个线程,就可共享数据。

5555555
场景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 时就可以拿到当前线程分配到的用户,而不会影响到其他线程的资源变量。
关于jdbc保持事务一致性,这些请求都是一个线程发生的,那我就用一个链接去做。要知道是不是一个线程发生的,可以通过ThreadLocalMap
分布式计算图例
线程安全场景图例:讲一个不是线程安全的变量,变成是线程安全的变量
线程资源一致性图例
线程资源持有图例
threadLocal的应用场景:
场景1:线程资源持有
场景2:线程资源一致性
场景3:线程安全
场景4:分布式计算
threadLocal 使用场景