摘要:
Socket编程注意点: Socket connect(SocketAddress endpoint, int timeout)方法:连接到服务器,并指定一个超时值。超时值零被解释为无限超时。在建立连接或者发生错误之前,这个方法一直处于阻塞状态。【在编写程序时这个超时值最好设置上】 Socket s 阅读全文
摘要:
cas即compare and swap,java.util.concurrent.atomic中的类都是这个原理。 阅读全文
摘要:
Runnable和Callable Runnable接口只有一个方法: Callable接口也只有一个方法: 同样是用于执行任务,Runnable不带返回值而Callable可以返回值;Callable的执行需要配合ExecutorService,如: 我们可以看到任务提交之后立即返回了Future 阅读全文
摘要:
http://ifeve.com/java-atomic/ http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 阅读全文
摘要:
http://www.ruanyifeng.com/blog/2013/10/event_loop.html 阅读全文
摘要:
public class Example7 { public static void main(String[] args) { Thread newThread = new Thread(new Runnable() { @Override public void run() { while (t 阅读全文
摘要:
守护线程与用户线程的区别只在于线程结束的时机。 执行以下代码,你会发现虽然daemonThread线程内部定义了一个死循环,但整个程序任然会在userThread执行完成之后不久自动退出。 public class Example6 { public static void main(String[ 阅读全文
摘要:
1.这个方法使用键值作为锁对象,缩小了同步范围,提升了效率。 public <T> ServerBootstrap childOption(ChannelOption<T> childOption, T value) { if (childOption == null) { throw new Nu 阅读全文
摘要:
1.内部锁 每个Java对象都可以隐式地扮演一个用于同步的锁的角色,这些内置的锁被称为内部锁或监视器锁。 获取锁:获取内部锁的唯一途径是,进入这个内部锁保护的同步块或方法。 退出锁:无论通过正常控制路径退出,还是从块中抛出异常,线程都在放弃对synchronized块的控制是自动释放锁。 2.互斥锁 阅读全文