b******n 发帖数: 851 | 1 写一个sequential 多线程pool。实现f(Runable r)要求caller不可以block,但是
在pool里面要一个跟一个的运行。
我觉得我的multithreading太差了 |
b******n 发帖数: 851 | 2 这个能用类似Executor。newSingleThreadExecutor这种东西做么? |
d******e 发帖数: 2265 | 3 什么是caller不可以block
【在 b******n 的大作中提到】 : 写一个sequential 多线程pool。实现f(Runable r)要求caller不可以block,但是 : 在pool里面要一个跟一个的运行。 : 我觉得我的multithreading太差了
|
b******n 发帖数: 851 | 4 就是caller submit后, thread pool给个future handle。。。
我只想问问这题, 我用一个thread, 对不对? 还是要用其他complicated logic
【在 d******e 的大作中提到】 : 什么是caller不可以block
|
d******e 发帖数: 2265 | 5 这个应该是tcp server的简化版。你需要一个request processor(也许可以和client
合并), 一个task processor, 然后你还需要一个queue.
这个task processor起来后不停的查询queue的任务,处理。
request processor接到任务后把请求做成future,加入queue.
client submit拿到future, get result时被block.
task processor set data 做notify all.
靠这个我看是诚心要不让过啊。否则除非天天写多线程,谁会记住 future interface
的接口和实现。
【在 b******n 的大作中提到】 : 就是caller submit后, thread pool给个future handle。。。 : 我只想问问这题, 我用一个thread, 对不对? 还是要用其他complicated logic
|
w*******s 发帖数: 138 | 6 单线程肯定是对的,但是应该没有符合题意。
题目要求应该是execute(id, callable),对应于同一个id的任务才会需要顺序执行。
但是有很多不同的id,用一个线程池来同时处理。
【在 b******n 的大作中提到】 : 就是caller submit后, thread pool给个future handle。。。 : 我只想问问这题, 我用一个thread, 对不对? 还是要用其他complicated logic
|
w*******s 发帖数: 138 | 7 再看了一便题目,好像就是要求实现newSingleThreadExecutor,用futureTask就可以
了。
【在 w*******s 的大作中提到】 : 单线程肯定是对的,但是应该没有符合题意。 : 题目要求应该是execute(id, callable),对应于同一个id的任务才会需要顺序执行。 : 但是有很多不同的id,用一个线程池来同时处理。
|