欢迎来到天天文库
浏览记录
ID:51963875
大小:467.50 KB
页数:16页
时间:2020-03-26
《Java程序设计项目教学全套课件教程眭碧霞电子资源电子课件 单元8任务4 时钟显示器设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单元8输入输出流与多线程——任务4时钟显示器设计多线程进程和线程的基础知识进程是运行中的应用程序,进程拥有系统资源(CPU、内存)。线程是进程中的一段代码,一个进程中可以拥有多段代码。进程本身不拥有资源(共享所在进程的资源)。在Java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。在同一应用程序中有多个功能流同时执行成为多线程。多线程(多个线程同时运行)程序的主要优点:可以减轻系统性能方面的瓶颈,因为可以并行操作。提高CPU的处理器的效率,在多线程中,通过优先级管理,可以使重要的程序优先操作,提高
2、了任务管理的灵活性;另一方面,在多CPU系统中,可以把不同的线程在不同的CPU中执行,真正做到同时处理多任务。CCIT多线程Java线程:创建与启动⑴定义线程继承java.lang.Thread类。此类中有个run()方法,应该注意其用法:publicvoidrun()如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。Thread的子类应该重写该方法。实现java.lang.Runnable接口。publicvoidrun()使用实现
3、接口Runnable的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的run方法。方法run的常规协定是,它可能执行任何所需的操作。CCIT多线程Java线程:创建与启动(2)实例化线程如果是扩展java.lang.Thread类的线程,则直接new即可。如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:Thread(Runnabletarget)Thread(Runnabletarget,Stringname)Thread(ThreadGroupgroup,R
4、unnabletarget)Thread(ThreadGroupgroup,Runnabletarget,Stringname)Thread(ThreadGroupgroup,Runnabletarget,Stringname,longstackSize)CCIT多线程Java线程:创建与启动(3)启动线程在线程的Thread对象上调用start()方法,而不是run()或者别的方法。在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。在调用start()方法之
5、后:发生了一系列复杂的事情启动新的执行线程(具有新的调用栈);该线程从新状态转移到可运行状态;当该线程获得机会执行时,其目标run()方法将运行。CCIT课堂演示应用继承Thread类创建线程MyThread.javaCCITpublicclassMyThreadextendsThread{publicvoidrun(){for(inti=0;i<5;i++){System.out.println("invokeMyThread"+i+"runmethod");try{Thread.sleep(500);}cat
6、ch(InterruptedExceptione){e.printStackTrace();}}}publicstaticvoidmain(String[]args){//main方法测试线程的创建与启动MyThreadmyThread=newMyThread();//实例化MyThread的对象myThread.start();//调用myThread对象的start方法启动一个线程}}课堂演示用实现Runnable接口创建线程MyRunable.javaCCIT//通过Runable接口实现多线程定义MyRu
7、nable类实现Runnable接口,并实现接口中的run方法。packagecom.demo11;publicclassMyRunableimplementsRunnable{publicvoidrun(){for(inti=0;i<5;i++){System.out.println("invokeMyThread"+i+"runmethod");try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}}}publicst
8、aticvoidmain(String[]args){//main方法测试线程的创建与启动//建立MyRunable类的对象,以此对象为参数建立Thread类的对象Threadthread=newThread(newMyRunable());thread.start();//调用thread对象的start方法启动一个线程}}多线程线程的状态控制⑴新建状态用new关键字和
此文档下载收益归作者所有