三、 判断题。
1. 进程是线程thread内部的一个执行单元,它是程序中一个单一顺序控制流程。(
2. 一个进程可以包括多个线程。两者的一个主要区别是:线程是资源分配的单位,而进程cpu调度和执行的单位。(
3. 用new关键字建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start进入就绪状态。(
4. 线程可以用yield使低优先级的线程运行。(
5. )方法调用后,当等待时间未到,该线程所处状态为阻塞状态。当等待时间已到,该线程所处状态为运行状态。(
6. 当一个线程进入一个对象的一个synchronized方法后,其它线程不可以再进入该对象同步的其它方法执行。(
四、 简答题。
1. 简述进程和线程的联系和区别。
2. 创建线程的两种方式分别是什么?各有什么优缺点。
3. 请你简述sleep( )和wait( )有什么区别?
4. j**a中实现线程通信的三个方法及其作用。
五、 编码题。
1. 设计一个多线程的程序如下:设计一个火车售票模拟程序。假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况。
2. 编写两个线程,一个线程打印1-52的整数,另一个线程打印字母a-z。打印顺序为12a34b56c….
5152z。即按照整数和字母的顺序从小到大打印,并且每打印两个整数后,打印一个字母,交替循环打印,直到打印到整数52和字母z结束。
要求:1) 编写打印类printer,声明私有属性index,初始值为1,用来表示是第几次打印。
2) 在打印类printer中编写打印数字的方法print(int i),3的倍数就使用wait()方法等待,否则就输出i,使用notifyall()进行唤醒其它线程。
3) 在打印类printer中编写打印字母的方法print(char c),不是3的倍数就等待,否则就打印输出字母c,使用notifyall()进行唤醒其它线程。
4) 编写打印数字的线程numberprinter继承thread类,声明私有属性private printer p;在构造方法中进行赋值,实现父类的run方法,调用printer类中的输出数字的方法。
5) 编写打印字母的线程letterprinter继承thread类,声明私有属性private printer p;在构造方法中进行赋值,实现父类的run方法,调用printer类中的输出字母的方法。
6) 编写测试类test,创建打印类对象,创建两个线程类对象,启动线程。
六、 可选题。
1. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
要求:使用内部类实现线程,对j增减的时候不考虑顺序问题。
2. 编写多线程程序,模拟多个人通过一个山洞的模拟。这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒,有10个人同时准备过此山洞,显示每次通过山洞人的姓名和顺序。
linux多线程设计 1
1linux线程概述。1.1线程概述。前面已经提到,进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段 段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较复杂的上下文切换等动作。为了进一步减少处理机的空转时间,支持多处理器以及减少上下文切换开销,进程在演化 现了另一个概念 线...
15限时作业
限时作业。13只有一个地球。学校班级姓名等级。一 听写。二 解释词语 滥用 威胁 三 我会搭配词语。的宇宙 的球体 的资源。的地球 的灾难 的纹痕。四 概括课文的主要内容。五 为下面的句子填上合适的关联词语。1 地球所拥有的矿产资源 上帝的恩赐,经过几百万年,甚至几亿年的地质变化才形成的。2 人们 ...
15上高作业
高空和舷外作业须知 目录。1 目的。2 适用范围。3 职责。4 作业规定。编写 海务经理。审核 指定人员。批准 总经理。1 目的。旨在规范船员上高 舷外作业的操作,确保作业人员人身安全。2 适用范围。适用于船员的上高 舷外作业。3 职责。3.1 水手长 机匠长负责上高 舷外作业的安全操作,并检查作业...