并发编程
文章平均质量分 79
虚客
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java多线程之CyclicBarrier
CyclicBarrier一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable转载 2012-11-29 14:42:59 · 807 阅读 · 0 评论 -
java nio Selector的使用-服务器端
原创 2010-10-19 11:10:44 · 124 阅读 · 0 评论 -
java解读NIO Socket非阻塞模式
生时,他会通知我们,传回一组SelectionKey,我们读取这些Key,就会获得我们刚刚注册过的socketchannel,然后,我们从这个Channel中读取数据,放心,包准能够读到,接着我们可以处理这些数据。Selector内部原理实际是在做一个对所注册的channel的轮询访问,不断的轮询(目前就这一个算法),一旦轮询到一个channel有所注册的事情发生,比如数据来了,他就会站起来报告,交出一把钥匙,让我们通过这把钥匙来读取这个channel的内容。 jdk供的无阻塞I/O(NIO原创 2010-10-18 09:19:08 · 111 阅读 · 0 评论 -
java nio
I/O 服务。Java 平台直到 JDK 1.4(也就是 Merlin)才支持非阻塞 I/O 调用。用 Java 语言写的服务器,由于其线程与客户机之比几乎是一比一,因而易于受到大量线程开销的影响,其结果是既导致了性能问题又缺乏可伸缩性。为了解决这个问题,Java 平台的最新发行版引入了一组新的类。Merlin 的 java.nio 包充满了解决线程开销问题的技巧,包中最重要的是新的 SelectableChannel 类和 Selector 类。原创 2010-10-16 17:01:29 · 111 阅读 · 0 评论 -
构建Java并发模型框架
2010-05-05 17:24:34 · 116 阅读 · 0 评论 -
同步和异步的区别
请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 ----------------------------------------------------------------------------------- 同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。 异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。 所以,要我请你吃饭就用同步的方法,要请我吃饭就用2010-05-05 17:23:39 · 257 阅读 · 0 评论 -
线程同步
2010-05-05 17:21:09 · 95 阅读 · 0 评论 -
多线程环境下使用 DateFormat
想必大家对SimpleDateFormat并不陌生。不过,你是否知道,SimpleDateFormat不是线程安全的(thread safe)。这意味着,下面的代码在多线程环境下运行结果并非如我们所愿 - 有时候,它输出正确的日期,有时候会输出错误的(例如.Tue Aug 11 00:00:00 CST 48201),有些时候甚至会抛出NumberFormatException!!!(当然,在转载 2013-01-18 13:40:25 · 3025 阅读 · 0 评论 -
Java多线程之ThreadPoolExecutor
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,转载 2012-12-03 23:26:49 · 455 阅读 · 0 评论 -
Java多线程之CountDownLatch
CountDownLatch concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我转载 2012-11-29 13:23:07 · 465 阅读 · 0 评论 -
Java多线程之Condition接口的实现
【Condition】Condition可以用来实现wait、notify、notifyAll方法的线程间同步通信。但其有增强的地方。我们先看一下wait等方法的使用情况:我们先得到一个对象的监视器,进入同步代码块,发现有些条件限制,我们的线程就要wait在这个对象监视器上,如果我们有100个线程,这100条线程有可能会因为不同的条件限制而要wait,但结果是他们都wait在同一个对象监视器上转载 2012-11-29 11:03:42 · 494 阅读 · 0 评论 -
Java多线程之BlockingQueue
BlockingQueue如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。 本例依旧使用的篮子程序,不过这个篮子中最多能放得转载 2012-11-28 18:22:16 · 646 阅读 · 0 评论 -
Java多线程之Callable和Future接口的实现
Callable和Future Callable接口定义了一个call方法可以作为线程的执行体,但call方法比run方法更强大: A、call方法可以有返回值 B、call方法可以申明抛出异常 Callable接口是JDK5后新增的接口,而且不是Runnable的子接口,所以Callable对象不能直接作为Thread的target。转载 2012-11-28 17:15:57 · 2295 阅读 · 0 评论 -
Java多线程之Callable接口的实现
口 * Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。 * Callable和Runnable有几点不同: * (1)Callable规定的方法是call(),而Runnable规定的方法是run(). * (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。 * (3)call()方法可抛出异常,而run()方法是不能抛出异常的。 * (4)运行Callable任原创 2012-11-28 17:16:06 · 147 阅读 · 0 评论
分享