`
aty
  • 浏览: 35469 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
  1、对一个线程调用2次以上的start()方法会报错。 ChildThread t1 = new ChildThread("thread1");     t1.start(); t1.start();   2、对于已经启动的线程,调用setDaemon会报错   class ChildThread extends Thread {   @Override  public void run()  {   System.out.println(this.name + "--child thead begin");    setDaemon ...
最新在看xwork的源代码,XmlConfigurationProvider这个类,用来实现解析xwork.xml配置文件。该类使用了有向图这种数据结构,来判断是否存在<include>元素的循环包含。   有向图的实现如下: import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; ...
java中的null对象和"null"字符串,JSonObject会默认对这些数据进行处理。 考虑到这样一种场景:发送方和接收方通过json格式数据进行交互 // key = null,这种键值对会直接被json-lib忽略 // key = "null",这种值会被json-lib转换null public static String sendJmsString() { JSONObject selfObj = new JSONObject(); selfObj.put(" ...
Oracle的in语句,不能超过1000个值,否则会报sql出错。 public String splitInCondition(List<String> dataList, String columnName, String type) { String relation = null; if ("in".equalsIgnoreCase(type)) { relation = " OR "; } else ...
  上一遍博客 http://aty.iteye.com/blog/1913734 写道 JDK的ThreadLocal理解(一)使用和测试  ,对TheadLocal的测试和使用进行了介绍,这一步将介绍一下ThreadLocal的实现原理。 现在附上JDK的ThreadLocal的set方法源码   public void set(T value) { //获取当前进入该方法的线程 Thread t = Thread.currentThread(); //取出当前线程的私有变量map ...
ThreadLocal的使用可以参考struts2的ActionContext,个人觉得这种使用方式是比较优雅的: 1、ThreadLocal是业务无关的对象,对于开发代码来说,越少使用越好。      这样能够尽可能的减少技术细节分散开发者对业务逻辑的关注   public class ActionContext implements Serializable { static ThreadLocal<ActionContext> actionContext = new ThreadLocal<ActionContext>(); / ...
  阅读了JDK的Thread、ThreadLocal源代码之后,有几点设计心得:   Thread类,有一个ThreadLocal.ThreadLocalMap类型的成员变量   /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.ThreadLocalMap threadLocals = null;     这个变量不是static的,每个线程对象都会有自己的threadLocals ...
刚开始使用java线程的时候,使用都是Thread或Runnable接口。最近发现java并发包下,提供了一个与Runnable接口类似的Callable接口。Callable提供了比Runnable更灵活和宽松的call()。 Callable类似于Runnable接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务 Callable经常和java线程池一起启用: //创建线程池 ExecutorService threadPool = Executors.newSingleThreadExecutor(); //TaskCallabl是C ...
package thread.local; public class Test { // 线程局部变量:初始值默认是null private final static InheritableThreadLocal<String> basicholder = new InheritableThreadLocal<String>(); // 存放的是引用 private final static InheritableThreadLocal<St ...
  JDK提供了InheritableThreadLocal类,用来让子线程继承父线程的值。在创建子线程的时候,子线程会接收此刻父线程线程局部变量的初始值。 package thread.local; public class Test { // 线程局部变量:初始值默认是null private final static InheritableThreadLocal<String> parentholder = new InheritableThreadLocal<String>(); // 线程局部变量:初始值默认是nu ...
  阅读《Spring 3.x企业应用开发实战》中的aop章节内容:   AOP alliance (AOP联盟) :众多开源AOP项目的联合组织,目的是为了制定一套标准规范来描述AOP,定义标准AOP的接口,以方便各种遵守该标准的具体aop实现可以相互调用,也为了方便使用aop的项目能够平滑从一个aop实现迁移到另一个aop实现上。官方网站http://sourceforge.net/projects/aopalliance/   AspectJ::AspectJ是语言级的AOP实现,它扩展了java语言,定义了aop的语法,能够在编译期提供横切代码的织入,所以它有一个专门的编译器 ...
     java提了一个线程异常处理类,当线程执行的时候如果出现异常,可以调用该函数,进行一些善后工作,比如释放资源、清理数据等工作。通过这种方式,线程不需要关注因为异常导致资源不能释放等问题。 package thread.exception; /* * 1、Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个异常而被终止 * 2、主线程之所以不处理子线程抛出的RuntimeException,是因为线程是异步的,子线程没结束,主线程可能已经结束了 * * http://blog.csdn.net/wh62 ...
       ThreadLocal是java中轻量级的线程同步解决方法,为了达到线程安全的目的,采用的是空间隔离的方法。使用方式如下:   1、定义2个会被多线程共享的bean,一个使用ThreadLocal,一个不使用任何线程同步措施 package bean; public interface IShareBean { public void get(); public void autoInc(); } package bean.impl; import bean.IShareBean; public class SafeS ...
       最近在看jdk的动态代理和aop的一些概念,发现jdk的动态代理,网上大多写的都很简单,基本都是基于Object类型使用的,导致难以理解, 使用容易出错。按照个人的理解,组织了下jdk动态代理的结构。   util包 :  放置 ...
CSDN上的十篇将JMS的博客很好,浅显易懂,适合初学者了解jms。 资料地址是: http://blog.csdn.net/iamfafa/article/category/799158
Global site tag (gtag.js) - Google Analytics