JAVA语言
文章平均质量分 65
程尔旭源
这个作者很懒,什么都没留下…
展开
-
Lock与synchronized 的区别
原博文来自 http://houlinyan.iteye.com/blog/1112535我参考该blog并做了整理总结1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用转载 2015-04-03 13:51:57 · 509 阅读 · 0 评论 -
反射调用android系统级API函数
try { Class mClass = Class.forName("com.android.server.wifi.WifiSettingsStore"); Constructor con=mClass.getDeclaredConstructor(Context.class); if(!con.isAccessible()){ con.setAccessible(t原创 2015-08-19 14:13:32 · 3138 阅读 · 3 评论 -
多个线程同时开始启动计时框架的设计与实现
在DEMO测试中,我有个需求描述如下:线程A、B、C、D,我需要他们同时开始运行,并记录这四个线程全部完成所需要的时间。这个借助synchronizer可轻松完成。这里我们使用CountDownLatch来实现,该方法的详细描述参见我的上篇博文:点击打开链接核心代码如下:demo请参见github /** * @param args * @throws Inte原创 2015-04-17 16:41:27 · 759 阅读 · 0 评论 -
线程使用中的暂停,建议优先使用TimeUnit类中的sleep()
TimeUnit是什么?TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方法本身也很常用而且出现在很多面试中。如果你已经使用过Thread.sleep(),转载 2015-04-17 16:06:46 · 3676 阅读 · 0 评论 -
【笔记,待修改】关于设计模式的总结
1、抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。比如我创建一个cache接口,要求实现序列化和反序列化方法。2、桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。比如我发布一个aidl的接口,其实现都有service的stub去实现。3、适配器模式将一个类的接口转换成客户希望的另外一个接口。比如日历提供一个管理类原创 2015-04-20 15:08:32 · 353 阅读 · 0 评论 -
Java中合理的停止掉一个线程thread
1、第一种也是最常用的一种就是使用状态位public class Task extends Thread { private volatile boolean flag= true; public void stopTask() { flag = false; } @Override public void run原创 2015-04-08 11:45:58 · 1238 阅读 · 0 评论 -
java object的wait和Thread的sleep方法区别
一、这里先来介绍下object的wait、notify和notify all方法wait、notify和notifyAll方法是Object类的final native方法。所以这些方法不能被子类重写,Object类是所有类的超类,因此在程序中有以下三种形式调用wait等方法。wait();//方式1:this.wait();//方式2:super.wait();//方原创 2015-04-06 20:50:13 · 721 阅读 · 0 评论 -
java 多线程之CountDownLatch用法
public class CountDownLatchDemo { final static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) throws InterruptedException { CountDown转载 2015-04-06 21:03:55 · 637 阅读 · 0 评论 -
java集合包List、Set、Map总结
1、List List包含ArrayList、LinkedList、Vector、Stack 需要注意到是Vector是基于synchronized实现的线程安全的arrayList,Stack继承自Vector,提供了LIFO的弹出和压入操作,提供了push、pop和peek操作。2、Set Set 包含HashSet和TreeSet。Set是不允许重复元素的,因为Has原创 2015-04-18 16:55:16 · 568 阅读 · 0 评论 -
android应用程序中对于ANR主线程超时不响应导致强制关闭的解决方案
ANR(Application Not Responding)定义在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框原创 2016-03-11 14:50:49 · 3662 阅读 · 0 评论