摘要: 线程池 线程池的思想 线程池的概念与Executors类的应用 > 创建固定大小的线程池 > 创建缓存线程池 > 创建单一线程池(如何实现线程死掉后重新启动?) 关闭线程池 > shutdown 与 shutdownNow的比较 用线程池启动定时器 > 调用ScheduleExecutorServi 阅读全文
posted @ 2016-11-07 01:24 wq3435 阅读(3611) 评论(0) 推荐(0) 编辑
摘要: java5 中的线程并发库 主要在java.util.concurrent包中 还有 java.util.concurrent.atomic子包和java.util.concurrent.lock子包 java.util.concurrent.atomic包 查看atomic包文档页下面的介绍,可以 阅读全文
posted @ 2016-11-07 00:15 wq3435 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 1.线程范围内共享变量 1.1 前奏: 使用一个Map来实现线程范围内共享变量 1.2 ThreadLocal类实际上就是一种map 2.线程范围内共享多个变量,可以将多个变量封装为一个对象 打印结果 Thread-1 put data -723086824Thread-0 put data 772 阅读全文
posted @ 2016-11-06 02:21 wq3435 阅读(1218) 评论(0) 推荐(0) 编辑
摘要: 面试题: 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着又 主线程循环100次,如此循环50次,请写出程序 经验:要用到共同数据(包括同步锁)或共同算法的若干个方法应该归在同一个类身上,这种设计正好提现了高类聚和程序的健壮性。 阅读全文
posted @ 2016-11-04 02:01 wq3435 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 线程安全问题: 多个线程操作同一份数据的时候,有可能会出现线程安全问题。可以用银行转账来解释。 模拟线程安全问题 以上涉及两个问题: 内部类中使用外部类的成员变量需要加final 静态方法中不能 new 内部类的实例对象,why? 内部类的重要特点,由于内部类可以访问外部类的成员变量,意味着外部类有 阅读全文
posted @ 2016-11-04 01:13 wq3435 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 传统定时器技术回顾(jdk1.5以前) 还有一种方式,定义两个定时器 阅读全文
posted @ 2016-11-04 00:05 wq3435 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 1.传统线程机制的回顾 1.1创建线程的两种传统方式 在Thread子类覆盖的run方法中编写运行代码 >涉及一个以往的知识点:能否在run方法声明上抛出异常,以便省略run方法内部对Thread.sleep()语句的try...catch处理InterrunptedException? 在传递给T 阅读全文
posted @ 2016-11-03 01:31 wq3435 阅读(360) 评论(0) 推荐(0) 编辑
摘要: MyBatis一级缓存 MyBatis一级缓存默认开启,一级缓存为Session级别的缓存,在执行以下操作时一级缓存会清空 1.执行session.clearCache(); 2.执行CUD操作 3.session.close(); //不是同一个Session对象了 MyBatis二级缓存 需要配 阅读全文
posted @ 2016-11-01 23:32 wq3435 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 程序中代理的概念与作用 要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等。 代理架构图: 如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类,还是使用代理类, 这样以后很容易切换,例如 阅读全文
posted @ 2016-10-31 01:38 wq3435 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1.类加载器及委托机制的深入分析 > 类加载器的作用:一个java文件中的出现的类,首先要把这个类的字节码加载到内存中,这个类的信息放在硬盘的classPath下的class文件中, 把class文件中的内容加载到内存中去,在进行一些处理,处理完的结果就是字节码,这一系列工作是类加载器在做。 > J 阅读全文
posted @ 2016-10-28 02:14 wq3435 阅读(151) 评论(0) 推荐(0) 编辑