|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。
接上篇,在上篇中先容了线程池的计划需求和利用,在这里我们剖析Concurrent包中线程池的完成类ThreadPoolExecutor的计划,是否是感到没意义,人家都完成了还剖析啥?固然是进步我们本身的计划才能了。关于计划才能的进步,我以为一方面我们要在详细理论中,可以进修后人
总结的计划头脑(好比计划形式之类的),依据详细高低文,可以举一反三的利用他们。另外一方面剖析优异的框架计划与完成也是很好的体例,固然JDK设计是最好的进修材料。闲话多了,切进主题,计划要点:
纵不雅在JDK1.5之前我们本人完成的线程池,仍是Concurrent供应的线程池,在线程池中起首我们要两个容器保护线程池中的线程与提交给线程池中的Task。
线程池与Task怎样联系关系,甚么样的Task才能够提交的该线程池中实行呢。所以我们要界说一个接口,分别线程池与详细
Task的耦合干系,ThreadPoolExecutor能够承受完成Runnable接口大概Callable接口(实在最初也是组装为Runnable接口)的详细Task。
线程池中的线程从Task行列中往Task实行。
以上就是线程池计划的要点。
在ThreadPoolExecutor中,有一个外部类Worker,完成了Runnable,也就是线程池中的线程,不问可知,它的Run办法就是从Task行列
取Task,挪用Task的run办法(Task是完成了Runnable接口的),实行Task,顺次类推,直到没有行列内里Task。看下图
<p>
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|