多线程与图形图像.ppt

上传人:wuy****n92 文档编号:90671259 上传时间:2023-05-17 格式:PPT 页数:21 大小:336.15KB
返回 下载 相关 举报
多线程与图形图像.ppt_第1页
第1页 / 共21页
多线程与图形图像.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《多线程与图形图像.ppt》由会员分享,可在线阅读,更多相关《多线程与图形图像.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、E-mail:QQ:723975921Office:J021106Theres No Such Thing as a Free LunchJava自考复习自考复习主讲:钱 能JAVAJAVA课程复习课程复习1 1Theres No Such Thing as a Free Lunch 多线程与图形图像多线程与图形图像线程、进程和程序线程、进程和程序线程的生命周期及相关方法线程的生命周期及相关方法线程的应用线程的应用Graphics类及应用类及应用字体和颜色的设置字体和颜色的设置图片的显示图片的显示媒体播放媒体播放Theres No Such Thing as a Free Lunch 1 线程

2、、进程和程序线程、进程和程序线程线程计算机执行的最小单位,一个进程在其执行过程中,可以产生多个线程,每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。进程进程进程进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。程序程序程序程序是一段静态的代码,它是应用软件执行的蓝本。Theres No Such Thing as a Free Lunch 2 线程的生命周期及方法线程的生命周期及方法新建新建就绪就绪运行运行中断中断死亡死亡进入CPU等待队列获得CPU使用权1、CPU使用权切换使用权切换2、sleep休眠

3、休眠3、wait等待等待4、资源阻塞、资源阻塞1、run方法执行完成方法执行完成2、强制结束、强制结束1、创建线程对象、创建线程对象2、调用、调用start方法启动方法启动Theres No Such Thing as a Free Lunch public void start()public void start():启动线程:启动线程public void run()public void run():线程的执行任务:线程的执行任务public void sleep(int millsecond)public void sleep(int millsecond):休眠:休眠wait()w

4、ait()notify()/notifyAll()notify()/notifyAll()boolean isAlive()boolean isAlive():在线程没有进入死亡状:在线程没有进入死亡状态之前,返回态之前,返回truetrueThread currentThread()Thread currentThread():当前正在使用:当前正在使用CPUCPU资源的线程资源的线程interrupt()interrupt():用来:用来“吵醒吵醒”休眠的线程休眠的线程setPriority(int grade)setPriority(int grade):设置线程优先级:设置线程优先级T

5、heres No Such Thing as a Free Lunch 线程的应用线程的应用定义定义ThreadThread的子类,重写的子类,重写runrun方法。方法。class MyThread extends Threadclass MyThread extends Thread public void run()public void run()MyThread m=new MyThread();m.start();MyThread m=new MyThread();m.start();引用接口引用接口RunnableRunnableclass MyThread implements

6、 Runnableclass MyThread implements Runnable Thread m=new Thread(this);Thread m=new Thread(this);MyThread()m.start();MyThread()m.start();public void run()public void run()public void run()while(true)/线程的任务描述 try Thread.sleep(800);/休眠 catch(InterruptedException e)Theres No Such Thing as a Free Lunch 关

7、键字关键字synchronizedsynchronized在处理线程同步时,要做的第一件事就是要把在处理线程同步时,要做的第一件事就是要把修改数据的方法用关键字:修改数据的方法用关键字:synchronizedsynchronized来修来修饰。饰。一个方法使用关键字一个方法使用关键字synchronizedsynchronized修饰后,如修饰后,如果一个线程果一个线程A A占有占有CPUCPU资源期间,使得该方法被资源期间,使得该方法被调用执行,那么在该同步方法返回之前,即同调用执行,那么在该同步方法返回之前,即同步方法调用执行完毕之前,其他占有步方法调用执行完毕之前,其他占有CPUCPU

8、资源资源的线程一旦调用这个同步方法就会引起堵塞,的线程一旦调用这个同步方法就会引起堵塞,堵塞的线程要一直等到堵塞的原因消除(同步堵塞的线程要一直等到堵塞的原因消除(同步方法返回),再排队等待方法返回),再排队等待CPUCPU资源,以便使用资源,以便使用这个同步方法。这个同步方法。Theres No Such Thing as a Free Lunch AppletApplet与与Application的区别的区别Theres No Such Thing as a Free Lunch Applet的生命周期与方法的生命周期与方法public void paint(Graphics g)publ

9、ic void update(Graphics g)public void repaint()加载加载初始化初始化离开浏览器窗口离开浏览器窗口回到浏览器窗口回到浏览器窗口关闭浏览器关闭浏览器Theres No Such Thing as a Free Lunch Graphics类类drawString(String string,int x,int y)drawChars(char chars,int offset,int number,int x,int y)drawBytes(byte bytes,int offset,int number,int x,int y)drawLine(in

10、t x1,int y1,int x2,int y2)drawRect(int x,int y,int width,int height)fillRect(int x,int y,int width,int height)drawOval(int x,int y,int width,int height)fillOval(int x,int y,int width,int height)clearRect(int x,int y,int width,int height)drawRoundRect(int x,int y,int width,int height,int arcWidth,int

11、 arcHeight)fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)Theres No Such Thing as a Free Lunch 字体字体Font和颜色和颜色Color的设置的设置字体设置字体设置Font f=new Font(“隶书”,Font.BOLD,28);g.setFont(f);颜色设置颜色设置Color c=new Color(10,10,10);g.setColor(c);/g.setColor(Color.RED);Theres No Such Thing as

12、a Free Lunch 图片的显示图片的显示Image getImage(URL url,String name)public URL getCodeBase()public URL getDocumentBase()drawImage(Image img,int x,int y,ImageObserver observer)drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)Theres No Such Thing as a Free Lunch 媒体播放媒体播放使用使用Applet的一个静

13、态的方法:的一个静态的方法:newAudioClip(URL url,String name)或或Applet类的实例方法:类的实例方法:getAudioClip(Url url,String name)根根据据参参数数url提提供供的的地地址址,以以及及该该处处的的声声音音文文件件name,可可以以获获得得一一个个用用于于播播放放的的音音频频对象(对象(AudioClip类型对象)类型对象)play()播放声音文件播放声音文件 loop()循环播放循环播放 stop()停止播放停止播放Theres No Such Thing as a Free Lunch 7.一般的绘图程序要定义一个一般的

14、绘图程序要定义一个JPanel子类。在子类。在JPanel子类中还要重子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要重定义的方法是重定义的方法是()2009.1A.paint()B.paintComponent()C.repaint()D.update()8.用用Runnable接口实现多线程的主要工作是接口实现多线程的主要工作是()A.声明实现声明实现Runnable接口的类,在类内实现接口的类,在类内实现run()方法,让线程调方法,让线程调用用start()方法。方法。B.声明实现声明实现Runnable接口的

15、类,在类内实现接口的类,在类内实现run()方法,在类内声方法,在类内声明线程对象,在明线程对象,在init()方法中创建新线程,启动新线程。方法中创建新线程,启动新线程。C.声明实现声明实现Runnable接口的类,在类内实现接口的类,在类内实现run()方法,在类内声方法,在类内声明线程对象,在明线程对象,在Init()方法或方法或start()方法中创建新线程,在方法中创建新线程,在start()方方法中启动新线程。法中启动新线程。D.声明实现声明实现Runnable接口的类,在类内实现接口的类,在类内实现run()方法,在方法,在init()方法方法中创建新线程,在中创建新线程,在st

16、art()方法中启动新线程。方法中启动新线程。7设已经有设已经有Graphics2D对象对象g2d,Rectangle2D对象对象r,绘制对象,绘制对象r的的代码是代码是()2009.10Ag2d.draw(r)Bg2d.drawRect Cr.draw()Dr.drawRect()Theres No Such Thing as a Free Lunch 8在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是态的方法是()Astart()Binit()Cresume()Drun()7以下不属于文字字型要素的是以下不属于文字字型要素的

17、是()2010.1A颜色颜色 B字体字体 C风格风格 D字号字号8在以下四个供选的整数中,能作为线程最高优先级的整数是在以下四个供选的整数中,能作为线程最高优先级的整数是()A0 B1 C10 D117.小程序要播放音频文件,可使用类小程序要播放音频文件,可使用类()2010.10A.AudioB.Jaudio C.AudioClipD.JAudioClip8.以下是关于线程的叙述,正确的是以下是关于线程的叙述,正确的是()A.多线程的使用可以提高设备的平行工作能力,但是使系统管理多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂变得复杂B.同一个进程下的线程都有自己的状态、专用数

18、据段和独立的内同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源存资源C.线程是能独立运行的程序线程是能独立运行的程序D.进程的执行效率比线程的执行效率高进程的执行效率比线程的执行效率高Theres No Such Thing as a Free Lunch 7.Java语言规定,程序绘图区域的坐标原点位于整个区域的语言规定,程序绘图区域的坐标原点位于整个区域的()A.左上角左上角B.右上角右上角 C.左下角左下角D.右下角右下角 2011.18.以下关于线程互斥和同步的叙述中,正确的是以下关于线程互斥和同步的叙述中,正确的是()A.多线程互斥使用各自资源的程序段,在操作系统中称为临

19、界段多线程互斥使用各自资源的程序段,在操作系统中称为临界段B.临界段的作用是使某线程能够使用其它线程的资源临界段的作用是使某线程能够使用其它线程的资源C.可以使用可以使用notify()方法通知等待线程结束等待方法通知等待线程结束等待D.线程的互斥和同步可以很好地解决死锁问题线程的互斥和同步可以很好地解决死锁问题7设已经有设已经有Graphics2D对象对象g2d,Line2D对象对象line,绘制对象,绘制对象line的的代码是代码是()2011.10 Ag2ddraw(1ine)B.g2ddrawLine(1ine)C1inedraw()D.1inedrawLine()8设设Thread对

20、象对象thd的优先级为的优先级为7,thd又创建了另一个又创建了另一个Thread对象对象chd,如果未对,如果未对chd 的优先级进行修改,则的优先级进行修改,则chd的优先级为的优先级为()A1 B.5 C7 D.10Theres No Such Thing as a Free Lunch 7.设已经有设已经有Graphics2D对象对象g2d,RoundRectangle2D对象对象rRect,绘,绘制对象制对象rRect的代码是的代码是()2012.1A.g2d.draw(rRect)B.g2d.drawRoundRect(rRect)C.rRect.draw()D.rRect.dra

21、wRoundRect()8.以下关于线程互斥和同步的叙述中,正确的是以下关于线程互斥和同步的叙述中,正确的是()A.临界段是线程互斥使用资源的程序段临界段是线程互斥使用资源的程序段B.临界段能使线程使用其临界段能使线程使用其它线程的资源它线程的资源C.互斥和同步能很好地解决死锁问题互斥和同步能很好地解决死锁问题D.可用可用notify()方法让等待方法让等待线程结束等待线程结束等待7.以下不属于文字字型要素的是以下不属于文字字型要素的是2012.10A.字体字体B.风格风格C.字号字号 D.颜色颜色8.阻塞状态的线程在消除引起阻塞的原因后,会转入阻塞状态的线程在消除引起阻塞的原因后,会转入A.

22、死亡状态死亡状态B.开始状态开始状态C.就绪状态就绪状态 D.运行状态运行状态Theres No Such Thing as a Free Lunch 17.在在Java语言中,用类语言中,用类Font对象设置字型。如果要设置的字型是:对象设置字型。如果要设置的字型是:细明体、正常风格细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的磅字号,构造这样要求的Font对象对象fnA的代码是的代码是_。2009.118.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用方法恢复和用_方法恢复。方法

23、恢复。17Java语言约定,坐标原点位于绘图区域的语言约定,坐标原点位于绘图区域的_。2009.1018Java程序中,在临界段中使用程序中,在临界段中使用_方法,使执行该方法的方法,使执行该方法的线程等待。线程等待。17要在要在JComponent 子类的组件中绘图,应重写子类的组件中绘图,应重写_方法。方法。2010.118当线程使用完临界段后,为了使等待的线程恢复工作,需要当线程使用完临界段后,为了使等待的线程恢复工作,需要调用的方法是调用的方法是_。17.在某个组件中绘图,一般应该为这个组件所属的子类重写在某个组件中绘图,一般应该为这个组件所属的子类重写_方法。方法。2010.1018

24、.多线程互斥使用多线程互斥使用_的程序段,在操作系统中称为临界段。的程序段,在操作系统中称为临界段。Theres No Such Thing as a Free Lunch 17.Java语言的绘图模式有两种,它们是正常模式和语言的绘图模式有两种,它们是正常模式和_。18.当线程处于新建状态后,调用了当线程处于新建状态后,调用了start()方法,该线程就处于方法,该线程就处于_状态。状态。2011.117在在Graphics类中,用于在指定的位置显示字符串的方法是类中,用于在指定的位置显示字符串的方法是 _。2011.1018在在Java中,线程的调度策略采用中,线程的调度策略采用_,优先级

25、高的线程比,优先级高的线程比优先级低的优先执行。优先级低的优先执行。17.在异或模式下绘图时,实际绘制的颜色是由当前正要绘制的颜在异或模式下绘图时,实际绘制的颜色是由当前正要绘制的颜色、原先绘制的颜色,以及色、原先绘制的颜色,以及_作特定的运算确定的。作特定的运算确定的。2012.118.多线程程序设计中,让执行临界段程序时等待的线程结束等待,多线程程序设计中,让执行临界段程序时等待的线程结束等待,通常使用的方法有通常使用的方法有resume()、notify()或者或者_。17.Java语言的图像处理功能被封装在语言的图像处理功能被封装在_类中。类中。18.线程之间的相互等待被称为线程的线程

26、之间的相互等待被称为线程的_。2012.10Theres No Such Thing as a Free Lunch 24.要用要用Graphics2D类的方法画一个图形,首先要把参数对象类的方法画一个图形,首先要把参数对象g强制转换成强制转换成Graphics2D对对象;然后,用图形类提供的静态方法象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为创建一个图形对象;最后,以图形对象为参数调用参数调用Graphics2D对象的对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点

27、分别是段的程序段,线段的两个端点分别是(10.0,10.0)和和(30.0,30.0)。24写出设置写出设置Font对象对象fn的的Java语句,要求语句,要求Courier字体,字体,BOLD风格,风格,18磅字号,设调用磅字号,设调用对象的类型为对象的类型为Graphics的的g。2010.124设已经有设已经有Graphics2D对象对象g2d,请用请用Java语句绘制一个矩形语句绘制一个矩形rect,其左上角坐标是,其左上角坐标是(20,30),宽是,宽是120,高是,高是30。2010.1025.请写出用请写出用Runnable接口实现多线程的主要工作。接口实现多线程的主要工作。24

28、.请写出控制声音播放的三个方法。请写出控制声音播放的三个方法。2011.125请写出线程从阻塞状态恢复到就绪状态的三种途径。请写出线程从阻塞状态恢复到就绪状态的三种途径。2011.1025.由于创建输出流对象时,可能会出现由于创建输出流对象时,可能会出现IOException异常,所以创建输出流对象的代码异常,所以创建输出流对象的代码必须出现在必须出现在try-catch语句结构中。请写出为当前目录下的语句结构中。请写出为当前目录下的myFile.dat文件创建缓冲输出流文件创建缓冲输出流对象对象outs的代码。的代码。2012.124.请写出使用请写出使用Graphics2D类声明并创建一个左上角为类声明并创建一个左上角为(30,40),宽是,宽是80,高为,高为50的椭圆的椭圆对象对象ellipse的语句。的语句。2012.10Theres No Such Thing as a Free Lunch

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁