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

网站建设淘宝哈尔滨中企动力公司怎么样

网站建设淘宝,哈尔滨中企动力公司怎么样,中国监理建设注册网站,麻章网站建设公司一、背景介绍 在线人员列表涉及到的问题#xff1a; 类中写了公共变量最后导致数据混乱现象 保存数据没有考虑业务的隔夜覆盖导致的逻辑漏洞 涉及到继承#xff0c;对于this#xff0c;如果父类有同样的成员最终使用哪一个#xff1f; 参数不一致导致后续维护混乱 mysql由…一、背景介绍 在线人员列表涉及到的问题 类中写了公共变量最后导致数据混乱现象 保存数据没有考虑业务的隔夜覆盖导致的逻辑漏洞 涉及到继承对于this如果父类有同样的成员最终使用哪一个 参数不一致导致后续维护混乱 mysql由于关联字段类型不一致导致产生索引失效问题进而产生慢sql sql不考虑业务导致有明显的逻辑漏洞 上面的问题主要分为四类问题 公共变量导致数据混乱 对于在线人员的业务存在逻辑问题对应上面的 2 4 6 面向对象继承的问题this.属性和方法的问题 mysql由于关联字段类型不一致导致索引失效的问题。     二、解决过程 1.类中写了公共变量最后导致数据混乱现象 原因由于线程共享全局变量并且在实际业务的过程中对全局变量进行了操作修改所以在高并发、多线程的条件下会产生公共变量导致数据混乱的现象。 方案1.使用ThreadLocal ThreadLocal叫做线程变量该变量对于其他线程而言是隔离的该变量是当前该线程独有的变量。它与普通变量的区别在于每个使用该变量的线程都会初始化一个完全独立的实例副本。正是由于每个线程都有自己的实例副本且与其他线程不可访问那就不存在多线程共享该变量的问题。 没使用ThreadLocal之前 代码编写 public class Client {public static void main(String[] args) {// 定义线程实现接口Runnable runnable new Runnable(){Counter counter new Counter();Overridepublic void run() {counter.count();}};// 启动10个线程for( int i 0;i 10;i) {new Thread(runnable).start();}}}public class Counter{private int number;public void count(){for (int i 0; i 10 ; i) {numbernumberi;}System.out.println(Thread.currentThread().getName() --number;} }执行结果计算的结果应该都为55结果出现了混乱的情况 使用ThreadLocal之后 public class Client {public static void main(String[] args) {// 定义线程实现接口Runnable runnable new Runnable(){Counter counter new Counter();Overridepublic void run() {counter.count();}};// 启动10个线程for( int i 0;i 10;i) {new Thread(runnable).start();}} } public class Counter {private static ThreadLocalInteger number new ThreadLocalInteger() {// 重写这个方法可以修改“线程变量”的初始值默认是nullOverrideprotected Integer initialValue() {return 0;}};//计数方法public void count() {for( int i 0;i 10;i) {number.set(number.get()i);}System.out.println(Thread.currentThread().getName() --number.get());} }执行结果 2.将全局变量改为成员变量 public void count(){int number 0;for (int i 0; i 10 ; i) {numbernumberi;}System.out.println(Thread.currentThread().getName() --number);} }2.逻辑混乱多种情况 由于这里查询的入参带了createDate如果该学生从第一天到第二天一直没有下课那么你这儿查询的话由于带了createDate就查询不到该学生的在线数据在后续的流程中就会重复插入该学生就会有两条数据查询的时候就会有数据问题。 对于isOnline参数上面paramUser中有该参数。不必再进行赋值。这样的好处是参数值保持了一致降低了复杂度。 这里主要是对在线人员进行下线处理1.如果在这里更新了update_time那么就相当于这个课程班级中的所有学生的最近一次登陆时间都是一致的并且最近一次登陆时间与实际不符。2.如果where条件上加上了create_date作为条件那么如果过了十二点结束课程那么所有在线的人就无法进行下线处理了。 3.父子类继承对于this的使用 java中继承关系的父子类相同的方法会被重写。重写之后如果还想继续使用父类的方法需要通过super关键字去调用父类的方法。 4.关联字段类型不一致导致索引失效 相关博客(5条消息) 案例12-数据类型不一致导致索引失效_武梓龙_Arvin的博客-CSDN博客 三、总结提升 拓展我们的知识面不怕不知道就怕不知道。知识面宽广了在解决问题思考解决办法才能更丰富维度才会更多。
http://www.w-s-a.com/news/852624/

相关文章:

  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名
  • 免费下载教学设计的网站送网站建设管理信息内容审核制度
  • 外贸专业网站的公司百度旗下13个app
  • 物理组简介 网站建设高师院校语言类课程体系改革与建设 教学成果奖申报网站
  • 爱网站无法登录怎么回事手表网
  • 网站建设公司现在还挣钱吗山西手动网站建设推荐平台
  • 重庆建设工程交易信息网站网站制作公司起名
  • 东莞寮步做网站的有吗企业宣传册制作
  • 做网站的软件是哪个上蔡做网站
  • 前后端分离实现网站开发紧急通知网页升级
  • 河北专业网站建设公司推荐佛山小程序开发平台
  • 网站开发强制开启浏览器极速模式建设网站有什么风险
  • 360全景网站建设常州专业网站建设公司咨询
  • 重庆大渡口网站建设网站增加一体化建设功能的好处
  • 网站开发完整视频网站上传 404