1、 为什么要使用多线程?
单个线程可以同时运行多个不同的线程,执行不同的任务(在相同的时间段内执行不同的任务)
使用动机如: 使UI响应更快,利用多处理器系统,简化建模、执行异步或者后台处理等等
2、 线程的状态
初始状态New——就绪状态start——运行状态run——阻塞状态{wait,锁,sleep}——结束状态
3、 建议使用Runnable实现多线程,最终都是通过调用thread.start()来使用线程处于可运行状态。
4、 方法start():无需等待run()方法体执行完毕而直接继续执行下面的代码;
run()类的一个普通方法,还是在主线程里执行调用,如果直接调用则没意义了
5、 Timer和TimerTask的使用
每个Timer对象都对应一个后台线程,TimeTask是一个抽象类,实现了runnable接口,它的子类代表一个可以被Timer计划的任务。适用于轻量级的定时功能,但其时效性效果并不是特别强
Timer类的两个主要方法:schedule(...)时间间隔稳定性scheduleAtFixedRate(...)频率稳定性。
Timer的终止方法:{调用cancel,将timer设为daemon,置timer的引用为null,调用System.exit()方法)
JDK1.5以上建议少用Timer、TimerTask,而多使用ScheduledThreadPoolExector
Callable/Future、 ExectorService等东东(下一部分会介绍)
多线程编程的要点:
线程间的通讯、并发控制、资源的共享与释放等
注意点:
1/ java编写的程序都运行在JVM中,在JVM内部程序的多任务是通过线程来实现的。没启动一个Java应用程序则会启动一个JVM进程,在同一个JVM中有且只有一个进程那就是它自己。
2/ 每个线程都可以被标记为一个守护线程,当某个线程中运行的代码创建一个新Thread对象时,该线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时新线程才是守护线程。
3/ JVM推出的情况: 、
4/ 事实上所有的多线程代码执行顺序都是不确定的,每次执行的结果都是随机的,因此,只有乱序执行的代码才有必要设计为多线程。
熟悉Thread类的API是进行多线程编程的基础
实现runnable进行多线程编程的好处是适于多继承与共享变量
分享到:
相关推荐
"C++面向对象多线程编程1-8"这套资料深入探讨了如何利用C++进行高效的多线程编程,它由周良忠翻译自外国原作,旨在为读者提供详尽的理论知识和实践经验。 首先,面向对象编程(Object-Oriented Programming, OOP)...
C++面向对象多线程编程,介绍c++的多线程编程
1. 提高执行效率:多线程编程可以同时执行多个任务,从而提高程序的执行效率。 2. 提高响应速度:多线程编程可以提高程序的响应速度,提供更好的用户体验。 3. 提高可扩展性:多线程编程可以使程序更易于扩展和维护...
Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...
Java 多线程编程应用场景 —— 电影院售票系统设计 本资源摘要信息将对 Java 多线程编程在电影院售票系统设计中的应用进行详细介绍。该系统模拟了电影院三个售票窗口同时出售电影票的过程,通过 Java 多线程编程...
C#多线程编程实例实战 C#多线程编程实例实战是指在C#语言中实现多线程编程的实例和实战经验。多线程编程是指在同一个进程中创建多个线程,以便提高程序的执行效率和响应速度。在C#语言中,可以使用Thread类和线程池...
"Linux下的多线程编程" Linux下的多线程编程是一种高效的程序设计方法,它可以将一个程序的任务划分为多个部分,每个部分是一个顺序控制流。多线程编程可以实现并行计算,高效利用多处理器,并且具有许多优点,如...
C++多线程编程
这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...
《Windows多线程编程技术与实例(C++)》是一本深入探讨Windows环境下多线程编程的书籍,特别适合正在学习或已经从事C++多线程开发的人员阅读。本书通过丰富的实例,详细讲解了如何在Windows操作系统中利用C++进行...
【MFC多线程编程】是Windows环境下使用Microsoft Foundation Class (MFC)库进行多线程应用程序开发的技术。MFC库是Visual C++提供的一种面向对象的类库,它简化了Windows API的使用,包括多线程编程。多线程在现代...
《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...
Java多线程编程实战指南(核心篇) 高清pdf带目录 随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(Multicore Processor)离我们越来越近了――如今...
### Delphi 多线程编程知识点 #### 一、Delphi多线程编程概述 在计算机科学领域,多线程编程是一种使程序能够同时执行多个任务的技术。对于使用Delphi进行开发的应用程序而言,实现多线程编程可以显著提高应用程序...
嵌入式Linux多线程编程 嵌入式Linux多线程编程是嵌入式系统开发中的一种重要技术,能够提高系统的效率和响应速度。本章节将详细介绍嵌入式Linux多线程编程的基本概念、线程的创建、同步和互斥、线程属性、多线程...
Linux多线程编程是现代操作系统编程的重要组成部分,尤其是在Linux环境下,多线程编程更是成为了高性能应用不可或缺的技术之一。本文档主要涉及Linux多线程编程的一些关键知识点,包括pthread线程库的使用、线程的...
多线程编程是一种重要的软件开发技术,特别是在处理并发任务、优化资源利用率和提高程序响应速度方面。通过创建多个线程,程序可以在同一进程中并行执行不同的任务,从而提高整体效率。 在操作系统层面,进程和线程...