多线程实现与测试:交互运行规律及Runnable接口的优势

需积分: 0 0 下载量 195 浏览量 更新于2024-06-30 收藏 104KB DOCX 举报
在"28.2、多线程1"文档中,主要探讨了多线程编程的概念以及在Java中的两种实现方式:继承Thread类和实现Runnable接口。以下是关键知识点的详细阐述: 1. 单进程与多线程: 单进程环境下,如DOS,如果存在病毒,会立即响应,这是因为整个进程负责处理所有任务。而在Windows中,多进程模型使得病毒不易被察觉,因为每个进程有独立的线程,进程崩溃不会影响其他线程。 2. 多线程实现方式: - 继承Thread类: 子类重写`run()`方法,这是传统的方式,但限制在于一个类只能继承一个父类,适用于资源独占的场景。 - 实现Runnable接口: 类实现Runnable接口,重写`run()`方法,这种方式避免了单继承的局限性,允许类同时实现多个接口,更适合资源共享,且创建线程时使用Thread对象的start()方法启动。 3. 测试与线程调度: - 测试中,首先通过`run()`调用创建的线程,观察到结果有规律但非交互,因为`main()`线程执行效率高,优先级高。 - 使用`start()`调用,实现了线程交互运行,因为此时线程由操作系统调度,不是由程序直接控制。 4. 线程生命周期和优先级: - 主线程和其他线程的区别:主线程虽然简单,但优先级较高,可能导致其他线程的执行被延迟。 - 可以通过`Thread`类的`setName()`方法设置线程名字,`Thread.sleep()`用于线程休眠,`setPriority()`设置优先级。 - 线程休眠中断时,可能会抛出InterruptedException异常。 5. 线程共享资源示例: - 通过Runnable接口创建的线程可以更好地解决资源共享问题,例如在售票系统中,两个线程可以并发操作票务,避免数据冲突。 6. 线程操作方法: - `Thread`类提供了获取线程名称、暂停和唤醒线程等方法,这些操作有助于管理和监控线程的执行状态。 总结: 文档详细讲解了多线程编程的基础概念,包括线程的概念、Java中两种创建线程的机制及其优缺点,以及如何通过测试和方法调用来控制线程的执行。理解这些内容对于编写并发程序和优化性能至关重要。
2022-08-03 上传