多线程Bug

项目需求需要在每个url后加上固定的参数

于是用到拦截器

使用过程中在联想手机上出现Bug 启动报错 而且偶尔才会有

一般遇到偶尔才会出现的bug 想到的肯定是多线程之间出了问题

这个时候debug是完全无用的 只能通过打log的方式

在出现问题的地方打印出每个的值,看看值每次都是否格式一致

最终 在出问题的方法上加上同步锁即可

    1. publicsynchronizedstaticBasicNameValuePair getValues(int i){
      if(valuePairs==null){
          valuePairs =newBasicNameValuePair[5];
          valuePairs[0]=newBasicNameValuePair("channels",SPUtils.getInstance().getString("channel"));
         valuePairs[1]=newBasicNameValuePair("appVersion",AppUtil.getVersion(UIUtils.getContext()));
          valuePairs[2]=newBasicNameValuePair("deviceUUID",AppUtil.getUniqueIdentification(UIUtils.getContext()));
          valuePairs[3]=newBasicNameValuePair("deviceModel",AppUtil.getDeviceModel(UIUtils.getContext()));
          valuePairs[4]=newBasicNameValuePair("deviceVersion",AppUtil.getDeviceVersion(UIUtils.getContext()));
        }
        return valuePairs[i];
      }
      

        

来自为知笔记(Wiz)

时间: 2024-12-25 19:17:39

多线程Bug的相关文章

多线程bug修复

1 public class ThreadDemo { 2 public static void main(String[] args) { 3 ThreadTest test = new ThreadTest(); 4 new Thread(test).start(); 5 new Thread(test).start(); 6 new Thread(test).start(); 7 new Thread(test).start(); 8 } 9 } 10 11 class ThreadTes

多线程程序中操作的原子性

[转]http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/ 多线程程序中操作的原子性 0. 背景 原子操作就 是不可再分的操作.在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头.本文主要讨论了三 个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全

FindBugs规则整理

FindBugs规则整理 FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查.没有合理关闭资源.字符串相同判断错(==,而不是equals)等 一.Security 关于代码安全性防护 1.Dm: Hardcoded constant database password (DMI_CONSTANT_DB_PASSWORD) 代码中创建DB的密码时采

Spark生态系统解析及基于Redis的开源分布式服务Codis

摘要:在第九期"七牛开发者最佳实践日"上,陈超就Spark整个生态圈进行了讲解,而刘奇则分享豌豆荚在Redis上的摸索和实践. 1月24日,一场基于Spark和Redis组成的分布式系统实践分享由Spark资深布道者陈超和豌豆荚资深系统架构师刘奇联手打造. 陈超:Spark Ecosystem & Internals 陈超(@CrazyJvm),Spark布道者 在分享中,陈超首先简短的介绍了Spark社区在2014年的发展:目前Spark的发布版本是1.2,整个2014年Sp

iOS谋职之OC面试题

iOS求职之OC面试题 IOS求职之OC面试题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 使用include要注意重复引用的问题: class A

【Alpha版本发布】爬虫队长正在待命!

一.基础功能简介 本团队的爬虫能够从网上搜索相关内容, 并归类,把所爬到的网页或各种类型的文档下载到本地上. 上届团队Beta版本爬虫的主要功能如下: a)可爬取网页,问答页并进行问答文件分类. b)设计了一个较为完善的UI界面,可显示爬取的进度: c) 声称能够专门爬取pdf,ppt,doc等文档. d) 能够对爬取的结果进行分析. 二.更新内容 1.新增功能 1.1 新添了用户自定义关键词的分类功能: 其中腾讯.百度等分类关键词皆由用户自定义设置. 1.2 真正实现了pdf,ppt,doc等

oc基础知识(转)

1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouch Media Core Services Core OS -------------------- System Framework OC的类声明,定义域 OC关键字定义为  @class O-C特有的语句for(..in ..)迭代循环,其他的条件和循环语句和c一样 OC对面向对象的概述 (1)

iOS求职之OC面试题

1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 使用include要注意重复引用的问题: class A,class B都引用了class C,clas

iOS_ @property参数分析

@propert的相关参数 因为现在Xcode都是默认使用ARC所以现在分析主要是以ARC为主. [email protected]有哪些参数? 第一组: 内存管理特性 retain  assign  copy  strong    weak     unsafe_unretained     autoreleasing 第二组: 读 /写特性 readwrite  readonly 第三组: 多线程特性 nonatomic  atomic 第四组: 方法名特性 setter  getter 2