java视频教程多线程程序设计

java视频教程多线程程序设计

ID:36197826

大小:337.50 KB

页数:27页

时间:2019-05-07

java视频教程多线程程序设计_第1页
java视频教程多线程程序设计_第2页
java视频教程多线程程序设计_第3页
java视频教程多线程程序设计_第4页
java视频教程多线程程序设计_第5页
资源描述:

《java视频教程多线程程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第22讲多线程程序设计线程的概念线程的创建线程调度与线程控制线程状态与生命周期多线程与并发编程把一个问题切割分成多个可独立运行的部分,从而提高程序的相应能力。在程序中,这些彼此独立运行的部分称之为线程(thread),线程共享存储空间JVM允许应用程序并发执行多个线程23程序与进程程序是指令的集合,包括对数据的描述以及对数据的操作,告诉计算机如何完成一个任务。进程进程通常被认为是一个程序的一次动态执行过程。一个进程具有一组完整的、私有的基本运行时资源,特别是内存空间是独立的,不会与其他进程共享。4线程线程是进程中的一个

2、执行流(一组程序指令的顺序流),线程是处理器的调度单位。一个进程包含一个或多个线程。它们共享该进程的资源(如:内存和打开的文件等)。程序的执行从一个线程开始,这个线程称为主线程。JAVA可以实现一个进程中多线程的”并发”执行,从而使一个进程”同时”执行多个任务。在多处理器(或多核)系统中,这种并发是真实的。在单处理器系统中,这种并发是通过线程的交替执行来模拟的。线程的状态新建-new就绪-runnable运行-running阻塞-locking睡眠-sleeping等待-waiting中止-dead6线程状态及其变迁终止

3、就绪(可运行)运行睡眠拥塞等待新建starttimeoversleepstopwaittimeoverLackofsourcereadyattemper创建可执行线程创建java.lang.Thread类的子类重写Thread父类的run()方法通过子类的实例化,调用start()方法执行线程创建java.lang.Runnable接口的实现类实现类必须实现run()方法用实现类的实例作为参数,调用Thread类的构造器再通过调用Thread类的start()方法创建并运行线程78Java线程类Java.lang.Thr

4、eadThread类的实例就是线程,用户通过编写Thread的子类来构造自己的线程。publicUserThreadextendsThread{……publicvoidrun(){//overriderun方法}……}9通过编写Thread的子类创建线程示例ClassXyzextendsThread{inti;//线程的数据定义publicvoidrun(){//线程的代码定义(覆盖run方法)while(true){System.out.println(“Hello”+i++);if(i==5)break;}}}pub

5、licclassThreadTest{publicstaticvoidmain(Stringargs[]){Threadt=newXyz();//直接实例化Thread的子类Xyz创建线程t.start();//启动线程}}10Java线程接口java.lang.RunnableRunnable的定义:publicinterfaceRunnable{ voidrun();}该接口只定义了一个run()方法。定义一个类实现Runnable接口publicUserRunimplementsRunnable{……publicv

6、oidrun(){//implementrun方法}}11通过实现Runnable接口创建线程定义一个类实现Runnable接口。classUserRunimplementsRunnable将该类的实例作为参数传给Thread类的构造方法,从而创建一个线程对象,并通过该对象调用start方法启动线程执行。Runnablerunner=newnewUserRun();Threadt=newThread(runner);t.start();12通过实现Runnable接口线程创建示例ClassXyzimplementsRun

7、nable{inti;//线程的数据定义publicvoidrun(){//线程的代码定义(实现run方法)while(true){System.out.println(“Hello”+i++);if(i==5)break;}}}publicclassThreadTest{publicstaticvoidmain(Stringargs[]){Xyzr=newXyz();//线程体对象Threadt=newThread(r);//以线程体对象为参数创建线程t.start();//启动线程}}13线程的创建一个线程是Thre

8、ad或其子类的对象。Thread的构造方法如下:publicThread()publicThread(Stringname)publicThread(Runnabletarget)publicThread(Runnabletarget,Stringname)publicThread(ThreadGroupgroup,

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

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

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