当前位置: 首页 > news >正文

嘉兴高端建站公司兰州解封最新消息

嘉兴高端建站公司,兰州解封最新消息,网页建站网站申请,山东住房和城乡建设厅网站一体化平台介绍 长话短说#xff0c;您不应在并行流中使用事务。 这是因为并行流中的每个线程都有其自己的名称#xff0c;因此它确实参与了事务。 Streams API旨在在某些准则下正常工作。 实际上#xff0c;为了受益于并行性#xff0c;不允许每个操作更改共享对象的状态#xff0… 介绍 长话短说您不应在并行流中使用事务。 这是因为并行流中的每个线程都有其自己的名称因此它确实参与了事务。 Streams API旨在在某些准则下正常工作。 实际上为了受益于并行性不允许每个操作更改共享对象的状态此类操作称为无副作用。 如果您遵循此准则并行流的内部实现将巧妙地拆分数据将不同部分分配给独立线程并合并最终结果。 这主要是由于实现事务的方式而产生的。 排序上ThreadLocal变量用于标记参与事务的每个方法。 ThreadLocal变量无法将其变量保持在并行流中。 为了证明我已经创建了以下测试 import org.junit.Assert; import org.junit.Test; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.IntStream; public class ThreadNameTest { Test public void threadLocalTest(){ ThreadContext.set( MAIN ); AtomicBoolean hasNamechanged new AtomicBoolean( false ); IntStream.range( 0 , 10000000 ).boxed().parallel().forEach(n-{ if (! MAIN .equals(ThreadContext.get())){ hasNamechanged.set( true ); } }); Assert.assertTrue(hasNamechanged.get()); } private static class ThreadContext { private static ThreadLocalString val ThreadLocal.withInitial(() - empty ); public ThreadContext() { } public static String get() { return val.get(); } public static void set(String x) { ThreadContext.val.set(x); } } } IntStream.range值越高则测试成功的可能性就越大。 现在看看这个github项目https://github.com/diakogiannis/transactionplayground/ TransactionPlayground项目 我创建了一种以4种不同方式加载猫的服务 按顺序curl -I -X GET http://localhost:8080/api/cats/all 顺序但抛出异常以创建回退标记curl -I -X GET http://localhost:8080/api/cats/all-exception 在并行curl -I -X GET http://localhost:8080/api/cats/all-parallel 并行但抛出异常以创建回退标记curl -I -X GET http://localhost:8080/api/cats/all-parallel-exception 也有2个辅助呼叫 清理curl -I -X DELETE http://localhost:8080/api/cats/ 和一个实际查看猫的curl -X GET http://localhost:8080/api/cats/ 开始项目 请执行mvn clean package wildfly-swarm:run 正常订购 呼叫curl -I -X GET http://localhost:8080/api/cats/all 然后curl -X GET http://localhost:8080/api/cats/ 正常无订单又称平行 调用clean curl -I -X DELETE http://localhost:8080/api/cats/调用curl -I -X GET http://localhost:8080/api/cats/all-parallel然后curl -X GET http://localhost:8080/api/cats/ 预期的结果是看到猫的清单。 无需订购。 这就是为什么并行流先到先服务并从列表中随机读取的原因。 正常例外 调用clean curl -I -X DELETE http://localhost:8080/api/cats/调用curl -I -X GET http://localhost:8080/api/cats/all-exception然后curl -X GET http://localhost:8080/api/cats/ 预期的结果是一个空列表。 这是因为该事务被标记为回滚所以jdbc事务也被回滚因此所有条目都没有按照ACID模型持久化到数据库中。 平行例外 调用clean curl -I -X DELETE http://localhost:8080/api/cats/调用curl -I -X GET http://localhost:8080/api/cats/all-parallel-exception然后curl -X GET http://localhost:8080/api/cats/ 预期的结果不是一个空列表。 这是因为并行流中的每个线程都会打开自己的jdbc事务并在完成后进行提交。 因此每次执行此操作时都会显示一些猫直到出现异常并停止执行为止。 回滚仅在一个线程中进行。 翻译自: https://www.javacodegeeks.com/2019/09/should-parallel-streams-transaction-context.html
http://www.pierceye.com/news/61810/

相关文章:

  • 网站的栏目哈尔滨建站软件
  • 网站排名优化有哪些牛霸天的软件1网站备案麻烦吗
  • 医院做网站备案都需要什么icp备案号查询平台官网
  • 做网站的费用属于什么费用哪个网站做宣传比较好
  • 东营做网站优化的公司iis怎么给网站设置权限
  • 网站内容优化方法有哪些微信公众号开发微网站开发
  • 网站建设登录界面代码ui设计怎么收费
  • 网站线下推广方式windows优化大师自动安装
  • 宁晋网站建设网络公司wordpress 无法注册
  • 海洋公司做网站推广长安大学门户网站是谁给做的
  • 网站的主题有哪些手机百度经验首页登录官网
  • 山东潍坊网站制作公司下载网站 源码
  • 锡林郭勒盟网站建设网站开发的工作
  • 湛江网站制作优化淘宝网页版怎么注销账号
  • 怎么做购物优惠券网站马鞍山建设局网站
  • dede网站名称更改不了禅城建设网站
  • 网站快速备案安全吗重庆网络公司排行榜
  • 济南网站制作开通用什么网站做ppt
  • dedecms 做影网站大学网站建设定制网站建设
  • 网站开发人员工工资企业标准化建设
  • 建立企业网站的缺点云南商城网站建设
  • 网站建设哪里好wordpress 漏洞攻击
  • 做网站水印营销网络建设怎么写
  • 做网站名词wordpress视频教程 电驴
  • 网站速度测速山西教育平台网站建设
  • 电脑做网站端口映射网站设置301重定向
  • 绍兴高兴区建设网站开发网页多少钱
  • 单页网站对攻击的好处陕西seo经理
  • 温州市网站建设公司自动升级wordpress失败 —— 请再试一次.
  • 请简述网站建设的一般流程图wordpress 经典案例