Future模式
摘要:利用JDK提供的Future可以轻易的方法的完成同步非阻塞调用,类似于NIO中的管家,实现的也是同步非阻塞。public class FutureTaskTest { public static void main(String[] args) { ExecutorService es = E...
阅读全文
posted @
2015-08-31 23:17
lnlvinso
阅读(373)
推荐(0) 编辑
Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated ?
摘要:Thread.stop, Thread.suspend, Thread.resume被标记为废弃的方法。在查看JDK的文档时,提到了下面的参考文章,先是英文版,接着是中文翻译。 Why is Thread.stop deprecated?Because it is inherently uns...
阅读全文
posted @
2015-08-31 22:40
lnlvinso
阅读(489)
推荐(0) 编辑
观察者模式
摘要:在实际应用中,当一个对象关注另一个对象的变化时,可以采取轮询的方式,也可以采用观察者模式来实现。 采用观察者模式时,被关注者发生变化时会去通知在其上注册的观察者。Swing中就大量的用到了观察者模式来实现监听组件状态的变化。 观察者模式的类图如下: Subject上注册关注其变...
阅读全文
posted @
2015-08-30 20:53
lnlvinso
阅读(261)
推荐(0) 编辑
wireshark抓包图解 TCP三次握手/四次挥手详解[转]
摘要:原文链接:http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%...
阅读全文
posted @
2015-08-23 23:48
lnlvinso
阅读(379)
推荐(0) 编辑
notify丢失、虚假唤醒
摘要:notify丢失: 假设线程A因为某种条件在条件队列中等待,同时线程B因为另外一种条件在同一个条件队列中等待,也就是说线程A/B都被同一个Object.wait()挂起,但是等待的条件不同。 现在假设线程B的线程被满足,线程C执行一个notify操作,此时JVM从Object.wait()的...
阅读全文
posted @
2015-08-23 23:33
lnlvinso
阅读(3637)
推荐(0) 编辑
java中的各种Queue
摘要:java中的各种并发Queue可以归为以下的几种: ConcurrentLinkedQueue: 一个由链表结构组成的非阻塞队列ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列LinkedBlockingQueue :一个由链表结构组成的有界阻塞队列PriorityBlo...
阅读全文
posted @
2015-08-23 18:25
lnlvinso
阅读(1046)
推荐(0) 编辑
关闭线程的一些问题
摘要:Thread.stop方法,虽然它确实停止了一个正在运行的线程,然而,这种方法是不安全也是不受提倡的,不应该使用stop方法来关闭Java的线程。 正确的方法应该是设置volatile boolean stop = false;,这样所有线程可以及时发现stop值的变化,线程运行的过程中周期性...
阅读全文
posted @
2015-08-17 23:32
lnlvinso
阅读(231)
推荐(0) 编辑
Exchanger
摘要:Exchanger可以在两个线程之间交换数据,只能是2个线程,不支持更多的线程之间互换数据。 当线程A调用Exchange对象的exchange()方法后,他会进入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行。 Exchanger...
阅读全文
posted @
2015-08-16 23:48
lnlvinso
阅读(250)
推荐(0) 编辑
文件锁FileLock
摘要:1.文件锁的定义 FileLock是文件锁,进程锁,用于进程间并发,控制不同程序(JVM)对同一文件的并发访问。 FileLock是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w)加锁,保证同时只有一个进程可以拿到文件的锁,这个进程从而可以对文件做访问;而其它拿不到锁的进程要...
阅读全文
posted @
2015-08-16 16:43
lnlvinso
阅读(3844)
推荐(0) 编辑
StringBuffer和String需要注意的
摘要:首先,StringBuffer的toString方法和String的subString方法都是在新生成了一个新的String。 最近做的一个功能,多线程的从SQLite数据库中读取数据。将数据拼成在MySQL中可以批量执行的SQL语句,再多线程地插入到MySQL中。 SQL语句类似:In...
阅读全文
posted @
2015-08-16 11:38
lnlvinso
阅读(1093)
推荐(0) 编辑