找回密码
 注册

QQ登录

只需一步,快速开始

查看: 711|回复: 0

吉大《java程序设计》21春复习指导(五)

[复制链接]
发表于 2021-2-22 10:59:40 | 显示全部楼层 |阅读模式
吉大《JAVA程序设计》FAQ(五)
第五章 多线程
1、多线程的优势:
减轻编写交互频繁, 涉及面多的程序的困难(如监听网络端口)
程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口以及其他外设)。
多处理器系统可以并发运行不同的线程(否则,任何时刻只有一个线程在运行)。
2、在Java中,线程由三部分组成:
虚拟CPU,封装在java.lang.Thread类中,控制整个线程的运行;
执行的代码,传递给Thread类,由Thread类控制顺序执行;
处理的数据,传递给Thread类,在代码执行过程中所要处理的数据。
3、创建多线程的两种方法:继承Thread类、实现Runnable接口。
4、构造线程体的两种方法的比较
使用Runnable接口
可以将CPU,代码和数据分开,形成清晰的模型;
还可以从其他类继承;
保持程序风格的一致性。
直接继承Thread类
不能再从其他类继承;
编写简单,可以直接操纵线程,无需使用Thread.currentThread()。
5、下面几种情况下,当前线程会放弃CPU:
线程调用了yield() 或sleep() 方法主动放弃;
由于当前线程进行I/O 访问,外存读写,等待用户输入等操作,导致线程阻塞;或者是为等候一个条件变量,以及线程调用wait()方法;
抢先式系统下,由高优先级的线程参与调度;时间片方式下,当前时间片用完,由同优先级的线程参与调度。  
6、基本的线程控制:终止线程, 测试线程状态, 线程的暂停和恢复
终止线程
线程终止后,其生命周期结束了,即进入死亡态,终止后的线程不能再被调度执行,以下几种情况,线程进入终止状态:
线程执行完其run()方法后,会自然终止。
通过调用线程的实例方法stop()来终止线程。
测试线程状态
可以通过Thread 中的isAlive() 方法来获取线程是否处于活动状态;
线程由start() 方法启动后,直到其被终止之间的任何时刻,都处于'Alive'状态。
线程的暂停和恢复
暂停一个线程的执行,在适当的时候再恢复其执行的方法:
sleep() 方法
当前线程睡眠(停止执行)若干毫秒,线程由运行中状态进入不可运行状态,停止执行时间到后线程进入可运行状态。
suspend()和resume()方法
线程的暂停和恢复,通过调用线程的suspend()方法使线程暂时由可运行态切换到不可运行态,若此线程想再回到可运行态,必须由其他线程调用resume()方法来实现。
东师作业答案可以联系QQ 761296021

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-4 19:50

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表