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

由一个多线程并发保存而引发的思考

1. 问题描述

问题描述,现A表(用户查看实验的次数)有user_id和exp_id两个字段,其中user_id加exp_id不唯一。B表有user_id,exp_id以及exp_num三个字段,其中user_id加exp_id唯一(表中未建唯一索引)。

现需要将A表的数据同步到B表,单机模式通过定时任务同步。A表的数据有10万条,为了提高同步效率,采用多线程并发同步。主线程按照游标分页查询,每页查询500条,然后将每页的数据都给独立的线程执行。为了保证user_id加exp_id唯一,只能在程序中通过加锁控制。首先按照 userId+"_"+expId给这500条数据分组,然后循环分组,在循环中通过synchronized来加锁,锁的对象是userId+"_"+expId,它是一个字符串,userId+"_"+expId相同的则锁住,不同的则放过。

protected void batchMigrate(List<
http://www.lryc.cn/news/165952.html

相关文章:

  • python-vlc
  • 2023长城杯 web部分题目(seekingeasy_extension)
  • 2-1 张量数据结构
  • QSqlQuery查询语句
  • 用c语言编写出三底模型
  • 15 Python使用MySQL
  • 3、Nginx 常用的命令和配置文件
  • python经典百题之兔子出生问题
  • 不定积分的概念和性质
  • 远程访问服务器JupyterLab的配置方法
  • Java native 关键字
  • 【线性代数】沉浸式线性代数在线学习网站
  • Kotlin中特性、数据类、伴生对象、顶层函数
  • 《PostgreSQL物化视图:创建、维护与应用》
  • shell脚本之test命令
  • JAVA设计模式8:装饰模式,动态地将责任附加到对象上,扩展对象的功能
  • Linux学习之MySQL备份
  • 时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化
  • 分类预测 | Matlab实现RBF-Adaboost多特征分类预测
  • 【Java代码规范】阿里编码规约 VS CheckStyle
  • iPhone苹果15手机圆点怎么设置让屏幕上显示出来圆形图标?
  • kibana报错内存溢出问题解决
  • 【C语法】1124循环结构
  • 在PHP8中向数组添加元素-PHP8知识详解
  • Drupal __ 8.5.0 __ XSS文件上传 __CVE-2019-6341
  • Pycharm中配置Celery启动
  • Jmeter —— 常用的几种断言方法(基本用法)
  • mybatis bean属性识别丢失【NoSuchPropertyException】
  • 点云从入门到精通技术详解100篇-基于补全点云与图像像素级融合的障碍物识别
  • 商品分类显示scroll-view布局实现