7 课后答案【khdaw_lxywyl】

上传人:nt****6 文档编号:45911575 上传时间:2018-06-20 格式:PDF 页数:8 大小:318.76KB
返回 下载 相关 举报
7 课后答案【khdaw_lxywyl】_第1页
第1页 / 共8页
7 课后答案【khdaw_lxywyl】_第2页
第2页 / 共8页
7 课后答案【khdaw_lxywyl】_第3页
第3页 / 共8页
7 课后答案【khdaw_lxywyl】_第4页
第4页 / 共8页
7 课后答案【khdaw_lxywyl】_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《7 课后答案【khdaw_lxywyl】》由会员分享,可在线阅读,更多相关《7 课后答案【khdaw_lxywyl】(8页珍藏版)》请在金锄头文库上搜索。

1、热门答案热门答案 最新求助最新求助 最新答案最新答案 答案分类答案分类淘答案(专业级搜索引擎为你提供服务)大学课后答案大学课后答案 公共基础课 | 通信/电子/电气 | 计算机/软件/网络/信息/数学 | 物理/光学/声学/热学/力学 | 经济学/管理学/法学 | 化学/环境/生物/医学/制药 | 土建/机械/材料/制造 | 哲学/心理学/政治学 | 文学/史学/外语/教育 | 其它类别 高中课后答案高中课后答案 高一课后答案 | 高二课后答案 | 高三课后答案 初中课后答案初中课后答案 初一课后答案 | 初二课后答案 | 初三课后答案 考试课后答案考试课后答案 等级考试类答案 | 公务员考试

2、答案 新视野大学英语读写教程答案(全)【k 高鸿业版西方经济学习题答案(微观.宏观 概率论与数理统计教程(茆诗松 著) 高 高等数学(第五版)含上下册 (同济大学 C程序设计 第三版 (谭浩强 著) 清华大 新视野英语听力原文及答案 课后答案【 理论力学 第六版 (哈尔滨工业大学理论 线性代数 (同济大学应用数学系 著) 高 21世纪大学英语第3册(1-4)答案【khd 复变函数与积分变换 第四版 (张元林 西 概率与数理统计 第二,三版 (浙江大学 C语言程序设计教程 第三版 (谭浩强 张 西方经济学(微观部分) (高鸿业 著) 中 C语言程序设计教程 第二版 (谭浩强 张 复变函数全解及导

3、学西安交大 第四版 社区服务社区服务社区热点社区热点进入社区课后答案网 -中国第一答案下载门户2009-10-15http:/ 7 章 多线程与异常处理 第 7 章 多线程与异常处理 【1】java 为什么要引入线程机制,线程,程序和进程之间的关系是怎样的? 解答:Java 之所以引入线程机制是因为:线程间的通信非常简单且有效,上下文切换非常 快,它们是同一个进程中的两部分之进行的切换,每个线程彼此独立执行,一个程序可以同 时使用多个线程来完成不同的任务。 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进 程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独

4、立的内存单元,而多个线 程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。 每个独立的线程有一个程序运行的入口、 顺序执行序列和程序的出口。 但是线程不能够独立 执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线 程的意义在于一个应用程序中, 有多个执行部分可以同时执行。 但操作系统并没有将多个线 程看做多个独立的应用, 来实现进程的调度和管理以及资源分配。 这就是进程和线程的重要 区别。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行 资源分配和调度的一个独立单位。线程是进程的一个实体,是 CPU 调度

5、和分派的基本单位, 它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运 行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线 程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线 程之间可以并发执行。 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。 进程有独立的地址空 间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不 同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死 掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,

6、但在进程切换时,耗费 资源较大,效率要差一些。 【2】线程有哪几种基本状态,试描述它们之间的转换图。 解答: 1) 新建:当一个Thread类或者其子类的对象被声明并创建时,新的线程对象处于新建状态, 此时它已经有了相应的内存空间和其他资源。 2) 就绪:处于新建状态的线程被启动后,将进入线程队列排队等待CUP服务,这个时候具备 了运行的条件, 一旦轮到CPU的时候, 就可以脱离创建它的主线程独立开始自己的生命周期。 3) 运行:就绪的线程被调度并获得 CUP 的处理边进入了运行状态,每一个 Thread 类及其子不能处于死亡状态的线程不具有继续执行的能力,线程死亡主要的原因是正常运行的线【3

7、】Runnable 接口有哪些抽象的方法?Thread 类有哪些主要域和方法 类的对象都有一个重要的 run()方法,当线程对象被调度执行的时候,它将自动调用本对象 的 run()方法,从第一句代码开始执行。所以说对线程的操作应该写到 run()方法中。 4) 阻塞:一个正在执行的线程如果再某种情况下不能执行了.进入阻塞状态, 这个时候它 进入排队状态, 只有引起了阻塞的原因消失的时候, 线程才可以继续进入排队状态等待 CUP 处理。 5) 死亡: 程完成了全部工作,即执行完了 run()方法,另外就是被提前强制的终止了。 1w w w .k h d a w .c o m课后答案网解答: Ru

8、nnable 接口就一个抽象的方法 run() 名字。 p 先级定义 ; 最主要的方法有: currentThread() 返回当前线程 行 运行方法 后恢复执行 4】创建线程有几种方式?为什么有时候必须采用其中种方式,试写出使用这种方式创建,一种是实现 Runnable 接口,一种是继承 Thread 类。 那他就不能用候以这个对象的实例做为参数值。 5】举例说明线程同步的概念。 多个线程要同时使用某个临介资源的时候来造成数据的正在对一条记录进行修改,而另一个用 记也【6】程的方法编写两个 10*10 矩阵的相乘的计算程序, 用 10 个线程完成结果矩阵每两个 10*10 的矩阵相乘的程序

9、c class TenThread 的矩阵,c 是用来存放结果的 Thread 类主要的域有: private char name; private int riority; 优先级别 public final static int MIN_PRIORITY = 1; 最小优 public final static int MAX_PRIORITY = 10 大优先级定义 等。 public static native Thread public static native void yield()停当前线程,让出其它的线程可以得以执 public static native void sle

10、ep(long millis) 线程休眠一段时间 public synchronized void start() 开始线程 public void run() 线程的主要 public final void suspend() 线程挂起 private native void resume() 线程挂起以【 线程的一般模式。 解答:有两种方式 因为 java 不能支持多继承,所以有的时候一个类如果已经继承了别的类, Thread 类来继承这种方式来创建一下线程,所以就只能实现 Runnable 接口。 这种方式创建线程的一般模式是: (1) 实现 Runnable 接口。 (2) 复写 ru

11、n 方法。 (3) 新建线程对象的时 (4) 调用线程类的 start()方法来启动线程。 【 解答:线程的同步问题主要是因为 不正确产生的。如果把资源做成一个对象的话,这时为了正确的使用这个资源,在一个线程 使用此对象的时候, 此对象的其它的线程就不应该能访问这个资源, 或以一个安全的方式来 访问。这就是 java 的线程同步要解决的主要问题。 举例说明:在使用数据库的时候,如果一个用户 要对这条记录时行修改,这样就形成线程同步的问题。 试用线 一行的计算。 解答: /* * */ publi/定义三个10*102w w w .k h d a w .c o m课后答案网int a = new

12、 int1010; int b = new int1010; int c = new int1010; /* 部的线程类,用来实现矩阵的行列相乘 MultiThread extends Thread /传入的参数表示行数 public void run() 1 300) repaint(); p(100); eption e) public void paint(Graphics g) g.setColor(Color.gray); 150); ); ,绿球是乌龟! “, 50, 180); tml 代码 lass“ WIDTH=“520“ HEIGHT=“300“ while (true)

13、if(Thread.x1 += d1; if(x1=200) d1=0; else x2 += d2; if (x1 3System.exit(0); a.stop(); b.stop(); try a.slee catch (InterruptedExc g.fillRect(0, 0, 400, 200);g.setColor(Color.red); g.drawLine(310, 0, 310,g.setColor(Color.red); g.fillOval(x1, y1, 10, 10g.setColor(Color.green); g.fillOval(x2, y2, 10, 10

14、); g.drawString(“红球是兔子 H5w w w .k h d a w .c o m课后答案网【8编写一个程序,让一个小球在窗体中跳动,当撞到边缘时,则选择一个角度反弹回去 java.awt.*; nt.*; nt.*; ublic class BallJump extends JFrame n(3.14*j/180.0); ontainer c; public BallJump() ntPane(); ; ().getWidth(); public static void main(String s) class panel extends JPanel/在面板上画个小球 pan

15、el() Thread t = new MoveThread(); public void paint(Graphics g) eight(); 】 解答: import import java.awt.eve import javax.swing.*; import javax.swing.evepstatic int x = 30,y=30; /小球的反弹角度 static int j=30; double k=Math.tastatic int maxx=0,maxy=0; Cc = this.getContec.add(new panel(); this.setSize(200, 200)this.setVisible(true); maxx=(int)this.getSizemaxy=(int)this.getSize().getHeight(); new BallJump(); Movet.st

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

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号