随笔分类 -  多线程

摘要:可以关闭 ExecutorService,这将导致其拒绝新任务。提供两个方法来关闭 ExecutorService。shutdown() 方法在终止前允许执行以前提交的任务,而 shutdownNow() 方法阻止等待任务启动并试图停止当前正在执行的任务。在终止时,执行程序没有任务在执行,也没有任务 阅读全文
posted @ 2018-08-21 15:16 浅滩沙洲 阅读(8247) 评论(0) 推荐(0)
摘要:execute方法位于接口Executor中。 submit方法位于AbstractExecutorService中。 根据源码可以看到execute仅可以接受Runnable类型,而submit重载了三个方法,参数可以是Runnable类型的接口、Runnable类型接口加泛型result以及Ca 阅读全文
posted @ 2018-08-21 14:07 浅滩沙洲 阅读(292) 评论(0) 推荐(0)
摘要:一、Future使用 FutureTask是Future和Callable的结合体。传统的代码是这样写的 Future f = executor.submit(new Callable()); 然后通过Future来取得计算结果。但是,若开启了多个任务,我们无从知晓哪个任务最先结束。因此,若要实现“ 阅读全文
posted @ 2018-08-21 14:00 浅滩沙洲 阅读(2644) 评论(0) 推荐(0)
摘要:1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达 阅读全文
posted @ 2018-08-21 10:59 浅滩沙洲 阅读(684) 评论(0) 推荐(0)
摘要:1. 闭锁CountDownLatch 闭锁CountDownLatch用于线程间的同步,它可以使得一个或者多个线程等待其它线程中的某些操作完成。它有一个int类型的属性count,当某个线程调用CountDownLatch对象的await方法时,将会阻塞,直到count的值变成0;count值可以 阅读全文
posted @ 2018-08-21 10:57 浅滩沙洲 阅读(2424) 评论(1) 推荐(0)