摘要: 接口长什么样? Future future = executor.submit(task); 这个返回值是什么意思? 提交任务后,会立即返回一个Future对象,它是一个句柄,你可以根据这个Future对象跟踪任务的执行情况。 Future对象具体有哪些功能呢? 1.可以随时查看任务的完成情况 => 阅读全文
posted @ 2018-08-15 21:54 猫毛·波拿巴 阅读(1211) 评论(0) 推荐(0)
摘要: ExecutorService接口继承于Executor接口,主要提供以下额外功能: 管理终结 产生Future对象,用于跟踪一个或多个任务的进度。 ExecutorService可以被shut down。这个操作,将导致它拒绝接受新的任务。它提供了两个关闭EexecutorService的方法。 阅读全文
posted @ 2018-08-15 21:39 猫毛·波拿巴 阅读(278) 评论(0) 推荐(0)
摘要: Executor是一个接口,这个接口负责执行提交给它的任务(Runnable对象)。这个接口能够使“任务提交”与“任务执行”解耦。即某人只要把任务提交给Executor就好了,至于它怎么给任务分配线程去执行,你就不用管了。 注: ①任务执行包括线程的如何使用,如何调度等等。 ②一般情况下,会选择使用 阅读全文
posted @ 2018-08-15 21:23 猫毛·波拿巴 阅读(563) 评论(0) 推荐(0)
摘要: Java SE5的java.util.concurrent类库还包含有定义在java.util.concurrent.locks中的显式的互斥机制。Lock对象必须被显式地创建、锁定和释放。因此,它与内建的锁形式相比,代码缺乏优雅性。但是,对于解决某些类型的问题来说,它更加灵活。 MutexEven 阅读全文
posted @ 2018-08-15 21:03 猫毛·波拿巴 阅读(482) 评论(0) 推荐(0)
摘要: 前要:一般的执行器会为每个任务单独创建线程,起码是分配单独的线程,即每个任务有其自己的线程。这样可以让任务并发执行。 问题:既然这样,为什么只用一个线程处理多个任务呢? 如果是这样,那一个线程某一时刻只处理一个任务。这样有什么好处呢?我们有讲到过,线程难就难在协调不同线程驱动的任务之间对内存和IO资 阅读全文
posted @ 2018-08-15 20:54 猫毛·波拿巴 阅读(2783) 评论(2) 推荐(0)
摘要: 概念 所谓后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程。反过来说,只要有任何非后台线程还在运行,程序就不会终止。比如,执行main()的就是一个非后台线程。——《J 阅读全文
posted @ 2018-08-15 20:47 猫毛·波拿巴 阅读(1016) 评论(0) 推荐(1)
摘要: 一个线程X可以在其他线程Y之上调用join()方法,其效果是X等待一段时间直到第二个线程Y结束才继续执行。如果某个线程在另一个线程t上调用t.join(),此线程将被挂起,直到目标线程t结束才恢复。 也可以在调用join()时带上一个超时参数(单位可以是毫秒,或者毫秒和纳秒),这样如果目标线程在这段 阅读全文
posted @ 2018-08-15 20:44 猫毛·波拿巴 阅读(326) 评论(0) 推荐(0)