
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
线程是程序员在学习java编程开发语言的时候需要重点掌握的一个编程知识点,下面我们就通过案例分析来了解一下,java线程创建与常见类型分析。
线程两种创建方式的区别
从面向对象编程的角度来看:创建Thread的子类是一种基于继承的技术,以Runnable接口为实例为构造器参数直接通过new创建Thread实例是一种基于组合的技术。我记得课程中好像讲过慎用继承,继承破坏封装来着,所以一般我们推荐用过Runnable方式来创建线程,更为书面化的描述是组合相对于继承来说,其类与类之间的耦合性更低,因此它也更加灵活。一般我们我们认为组合是优先选用的技术,也就是我们常说的面向接口编程。
通俗的讲你用继承的方式创建线程,那这个类已经基本和线程绑定了,不好复用。
用Runnable方式创建线程,从对象共享的角度来说,多个线程就可以同时执行这一个执行单元,而用二种,假设你想多个线程多做这一件事,那你就得建多个类,这是很直接的好处。
Java平台下形形色色的线程
你可能已经听过一些关于线程的名词了,父线程、子线程、垃圾回收线程等等,这里我们将对这些名词进行统一的解释,以方便后文的讨论,
按照线程是否阻止Java虚拟机正常停止),我们可以将Java中的线程(DaemonThread)和用户线程(UserThread,也称为非守护线程)。我们讨论的简单些,JVM只有在其所有的用户线程都运行结束才能正常停止,即用户线程不执行完,JVM不停止(我们讨论的是比较简单的),JVM的垃圾回收线程就是一个守护线程,我们这样想假设你写了一个简单的算法,没开线程,但是跑完了,垃圾回收线程还在跑,这不是很奇怪吗?
Java平台中的线程不是孤立的,线程与线程之间重视存在一些联系。假设线程所执行的代码创建了线程B,那么习惯上我们称线程B为线程A的子线程,相应的我们称线程A为线程B的父线程。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。