Quantcast
Channel: 《聊聊并发(三)Java线程池的分析和使用》的评论
Browsing all 44 articles
Browse latest View live

作者:nicky

你好,看了你的文章,有2点疑问 1 一个线程是不是只做一个任务? 2 电脑是双核的, 那不是最多只能同时处理2个线程吗?如何能够同时处理多个线程呢?

View Article



作者:方 腾飞

1:一个线程做完一个任务再做另外一个。 2:如果是不支持超线程的CPU,在同一时刻的确只能处理2个线程,但是并不意味着双核的CPU只能处理两个线程,它可以通过切换上下文来执行多个线程。比如我只有一个大脑,但是我要处理5个人提交的任务,我可以处理完A的事情后,把事情的中间结果保存下,然后再处理B的,然后再读取A的中间结果,处理A的事情。

View Article

作者:nicky

你好呀,看了你前面的关于介绍synchronized方面的文章,对自己写的一个使用多线程下载的有点晕, Pool <—— Task(Runnable) <—- void run(synchronized(this){ downLoadService(webUrl,savePath)}) 而在调用的过程中采用是 for(….) { pool.execute(new Task(arg1...

View Article

作者:方 腾飞

如果是在线程池的任务里,试用同步没有什么效果的,因为只有一个线程会执行当前任务。

View Article

作者:icecode

“需要注意的是如果一直有优先级高的任务提交到队列里,那么优先级高的任务可能永远不能执行” 这句话应该是错的吧, 应该是“优先级低的任务可能永远不能执行”

View Article


作者:方 腾飞

对的,多谢指正。

View Article

作者:dk

ThreadFactory:用于设置创建线程的工厂,可以通过线程工厂给每个创建出来的线程设置更有意义的名字,Debug和定位问题时非常又帮助。 上面是在“创建一个线程池需要输入几个参数”中介绍的,但是没有发现ThreadFactory是哪个地方出现的参数。

View Article

作者:方 腾飞

是我写得有遗漏,已经修正,多谢了。ThreadPoolExecutor有这样的构造方法,在RejectedExecutionHandler前面可以传递java.util.concurrent.ThreadFactory ThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit,...

View Article


作者:play404

hao!

View Article


作者:Hiko » Java多线程

[…] 参考:线程池 […]

View Article

作者:郑 旭东

一个小问题,一个线程池中执行不同种类并且不相关的任务,是不是一个好的设计?

View Article

作者:方 腾飞

看应用场景的。如果任务数很少,又对任务没有执行速度要求,可以放在一个线程池里。

View Article

作者:real

线程池的配置大小是基本线程池大小还是最大线程池大小呢

View Article


作者:Java并发编程:线程池的使用 |易鸣

[…]   http://ifeve.com/java-threadpool/ […]

View Article

作者:Java并发编程:线程池的使用_.net,ADT,AM,API,await,CA,call,CPU,CTE,DK,EF,Finally,GE,HTM...

[…]   http://ifeve.com/java-threadpool/ […]

View Article


作者:阳光天鹅

创建线程池的代码 new ThreadPoolExecutor(corePoolSize, maximumPoolSize,keepAliveTime, milliseconds,runnableTaskQueue, threadFactory,handler); 其中的milliseconds应该为timeUnit

View Article

作者:大巴气

keepAliveTime这个参数有点含糊不清,应该说的再清楚一点。 例如:超出队列时创建线程(当然必须小于maximumPoolSize)运行任务后,如果再没有其它任务可运行也就空闲(线程池不在提交任务和队列中的任务已经被corePoolSize的线程执行完成),空闲超出这个参数时间线程结束(理解为销毁)。 while (task != null || (task = getTask()) !=...

View Article


作者:yankang

可能是jdk版本不同(我的openjdk1.7),我看到的源码和您的有些不一样(如下), 有一个问题想请教下: 既然worker 每次都执行一个任务, 这里为啥要:w.lock()/unlock()?多谢啦 final void runWorker(Worker w) { Runnable task = w.firstTask; w.firstTask = null; boolean...

View Article

作者:Java并发编程:线程池的使用 – R&M

[…] http://ifeve.com/java-threadpool/ […]

View Article

作者:playersfk

请问一下,如果我的任务需要强调逻辑先后顺序,但是加入线程池中可能有先后顺序的任务放到了多个线程执行,就会导致顺序不一致,是不是就不能使用线程池。有没有什么好的方式来做?

View Article
Browsing all 44 articles
Browse latest View live




Latest Images