java培训教程-java多线程初识

java培训教程-java多线程初识

ID:11348451

大小:1.10 MB

页数:26页

时间:2018-07-11

java培训教程-java多线程初识_第1页
java培训教程-java多线程初识_第2页
java培训教程-java多线程初识_第3页
java培训教程-java多线程初识_第4页
java培训教程-java多线程初识_第5页
资源描述:

《java培训教程-java多线程初识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、http://www.moliying.com本文通过实现多线程的龟兔赛跑、多个用户安全存取一个账户及实现生产者和消费者问题来讲述线程的基础知识、线程控制的常用方法、线程同步知识、线程间通信相关内容。目录入下:一、线程基础1.1进程与线程1.2线程分类1.3多线程的优势二、线程控制2.1线程的创建和启动2.2线程的状态2.3线程调度三、线程同步3.1线程同步的必要性3.2线程同步的实现3.3死锁四、线程间通信4.1线程间通信的必要性4.2线程间通信的实现一、线程基础1.1进程和线程•程序–程序是一段静态的代码,它是应用程序执行的蓝本•进程–进程是指一种正在运行的程序,有自己的地址空间•进程

2、的特点磨砺营IT教育版权所有http://www.moliying.com–动态性–并发性–独立性•线程的定义–进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程–进程是系统资源分配的单位,可包括多个线程–线程是独立调度和分派的基本单位,共享进程资源–引入进程是为了多个程序并发执行,提高资源的利用率和系统吞吐量–引入线程是为了减少程序在并发执行时付出的时空开销1.2线程分类•系统级线程–(核心级线程):由操作系统内核进行管理,使用户程序可以创建、执行、撤销线程•用户级线程–管理过程全部由用户程序完成,操作系统内核

3、只对进程进行管理1.3多线程的优势•多线程使系统空转时间减少,提高CPU利用率•进程间不能共享内存,但线程之间共享内存非常容易•使用多线程实现多任务并发比多进程的效率高•Java语言内置多线程功能支持,简化了Java的多线程编程磨砺营IT教育版权所有http://www.moliying.com二、线程控制2.1线程的创建和启动•两种方法来创建线程–继承Java.lang.Thread类,并覆盖run()方法classMyThreadextendsThread{publicvoidrun(){/*覆盖该方法*/}}–实现Java.lang.Runnable接口,并实现run()方法clas

4、sMyThreadimplementsRunnable{publicvoidrun(){/*实现该方法*/}}•启动线程–新建的线程不会自动开始运行,必须通过start()方法启动–启动继承Thread的线程MyThreadt=newMyThread();t.start();–启动实现Runnable接口的线程MyThreadmt=newMyThread();Threadt=newThread(mt);磨砺营IT教育版权所有http://www.moliying.comt.start();演示示例:创建和启动多线程1继承Java.lang.Thread类publicclassThreadD

5、emo1{publicstaticvoidmain(Stringargs[]){MyThread1t=newMyThread1();t.start();while(true){System.out.println("兔子领先了,别骄傲");}}}classMyThread1extendsThread{publicvoidrun(){while(true){System.out.println("乌龟领先了,加油");}}}Java程序启动时,会立刻创建主线程,main就是在这个线程上运行。当不再产生新线程时,程序是单线程的磨砺营IT教育版权所有http://www.moliying.com

6、演示示例:创建和启动多线程2•实现Java.lang.Runnable接口publicclassThreadDemo2{publicstaticvoidmain(Stringargs[]){MyThread2mt=newMyThread2();Threadt=newThread(mt);t.start();while(true){System.out.println("兔子领先了,加油");}}}classMyThread2implementsRunnable{publicvoidrun(){while(true){System.out.println("乌龟超过了,再接再厉");磨砺营I

7、T教育版权所有http://www.moliying.com}}}•两种线程创建方式的比较–继承Thread类方式的多线程•优势:编写简单•劣势:无法继承其它父类–实现Runnable接口方式的多线程•优势:可以继承其它类,多线程可共享同一个Thread对象•劣势:编程方式稍微复杂,如果需要访问当前线程,需要调用Thread.currentThread()方法Thread类的常用方法方法功能staticThreadcur

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

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

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