Tekkaman

导航

 

2011年6月1日

摘要: 【锁】1、普通锁。 importjava.util.concurrent.locks.Lock; importjava.util.concurrent.locks.ReentrantLock; Lock lock =newReentrantLock(); myLock.lock(); myLock.unlock();2、读写锁。 Lock接口以及对象,使用它,很优雅的控制了竞争资源的安全访问,但是这种锁不区分读写,称这种锁为普通锁。为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,在一定程度上提高了程序的执行效率。 importjava.util.concu 阅读全文
posted @ 2011-06-01 13:06 Tekkaman 阅读(1189) 评论(0) 推荐(2) 编辑
 
摘要: 【有返回值的线程】1、可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。2、执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了。【实例】 阅读全文
posted @ 2011-06-01 12:54 Tekkaman 阅读(2295) 评论(0) 推荐(2) 编辑
 
摘要: 【线程池】1、固定大小线程池 importjava.util.concurrent.Executors; importjava.util.concurrent.ExecutorService; ExecutorService pool = Executors.newFixedThreadPool(2); pool.execute(t1); pool.shutdown();2、单任务线程池 ExecutorService pool = Executors.newSingleThreadExecutor();3、可变尺寸线程池 ExecutorService pool = Executors.ne 阅读全文
posted @ 2011-06-01 12:26 Tekkaman 阅读(522) 评论(0) 推荐(2) 编辑
 
摘要: 【线程的交互】1、wait()、notify()、notifyAll()。 注:必须从同步环境内调用wait()、notify()、notifyAll()方法。 Notify是瞬间的事件,不是持续性事件。如果在wait()前调用了notify(),对wait没影响,也意味着wait将永远等待。2、Thread.sleep()。线程休眠。【守护线程】 方法:setDaemon(true) 注:JRE判断程序是否执行结束的标准是所有的前台执线程行完毕了,而不管后台线程的状态。【其它】 关键字:volatile 阅读全文
posted @ 2011-06-01 10:51 Tekkaman 阅读(298) 评论(0) 推荐(2) 编辑