笔记--Java8编程开发入门.doc

笔记--Java8编程开发入门.doc

ID:56260038

大小:5.45 MB

页数:111页

时间:2020-06-04

笔记--Java8编程开发入门.doc_第1页
笔记--Java8编程开发入门.doc_第2页
笔记--Java8编程开发入门.doc_第3页
笔记--Java8编程开发入门.doc_第4页
笔记--Java8编程开发入门.doc_第5页
资源描述:

《笔记--Java8编程开发入门.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java多线程实现线程与进程Java是一门为数不多的支持多线程编程的语言。进程?在操作系统的定义中,进程指的是一次程序的完整运行,这个运行的过程之中内存、处理器、IO等资源操作都要为这个进程服务。在最早的dos系统的时代,有一个特点:如果你电脑病毒发作了,那么你电脑几乎就不能动了。因为所有的资源都被病毒软件所占用,其他的程序无法抢占资源。但是到了后来Windows时代,这一情况发生了改变,电脑即使有病毒,电脑也可以运行(就是慢点)。Windows属于多进程的操作系统。但是有一个问题出现了:每一个进程都需要有资源的支持,那么多个进程怎

2、么去分配资源呢?在同一个时间段上,会有多个进程轮流去抢占资源。但是在某一个时间点上只能有一个进程。线程?线程是在进程的基础上进一步划分的结果,即:一个进程上可以同时创建多个线程。线程是比进程更快的处理单元,而且所占的资源也小。那么多线程的应用也是性能最高的应用。总结:线程的存在离不开进程。进程如果消失后,线程一定会消失。反之线程消失了进程未必会消失。Thread类实现掌握java中3种多线程的实现方式(JDK1.5之后增加了第3种)。如果想在java中实现多线程,有两种途径:1.继承Thread类;2.实现Runable接口(Cal

3、lable接口)。Thread类是一个支持多线程的功能类,只要有一个类继承了Thread那么它就是一个多线程的类。ClassMyThreadextendsThread{}所有程序的起点是main()方法。但是所有线程也有自己的起点,即:run()方法。在多线程的每个主体类之中都必须覆写Thread类中所提供的run()方法。publicvoidrun(){}这个方法没有返回值,那么也就表示线程一旦开始那么就要一直执行,不能够返回内容。classMyThreadextendsThread{privateStringname;//定义属

4、性publicMyThread(Stringname){//定义构造方法this.name=name;}@Overridepublicvoidrun(){//覆写run方法,作为线程的主体方法for(intx=0;x<200;x++){System.out.println(this.name+"-------"+x);}}}本线程类的功能是进行循环的输出操作。所有的线程跟进程一样的,都必须轮流抢占资源。所以多线程的执行应该是多个线程彼此交替执行,也就是说如果直接调用了run()方法,那么就不能够启动多线程,多线程启动的唯一方法就是T

5、hread类中的start()方法:publicvoidstart(),调用此方法执行的方法体是run()方法定义的。packagecn.mldn.util;classMyThreadextendsThread{privateStringname;//定义属性publicMyThread(Stringname){//定义构造方法this.name=name;}@Overridepublicvoidrun(){//覆写run方法,作为线程的主体方法for(intx=0;x<100;x++){System.out.println(thi

6、s.name+"-------"+x);}}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){MyThreadmt1=newMyThread("线程A");MyThreadmt2=newMyThread("线程B");MyThreadmt3=newMyThread("线程C");mt1.start();mt2.start();mt3.start();}}此时每一个线程对象交替执行。疑问?为什么多线程启动不是调用run(),而必须调用start()?Thread的start

7、()方法不仅仅要启动多线程的执行代码,还要去根据不同的操作系统进行资源的分配。Runnable接口实现虽然Thread类可以实现多线程的主体类定义,但是它有一个问题,java具有单继承局限,正因为如此,在任何情况下针对于类的继承都应该是回避的问题,那么多线程也一样,为了解决单继承的限制,在java里面专门提供了Runable接口:@FunctionalInterfacepublicinterfaceRunnable{//函数式接口,特征是一个接口只能有一个方法publicvoidrun();}在接口里面任何的方法都是public定义

8、的权限,不存在默认的权限。那么只需要让一个类实现Runnable接口,并且也需要覆写run()方法。与继承Thread类相比,此时的MyThread类在结构上是没有区别的,但是有一点是有严重区别的:如果此时继承了Thread类,那么可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。