了解Java多线程及如何创建和启动多线程?
1 . 进程与线程
至今为止,我们开发的程序在同一时间只能执行一项任务,如果程序执行中遇到了耗时的任务,程序必须等待该任务完成后才能执行后续的代码。这样的单线程结构不能充分利用计算机的硬件资源,代码运行效率不高。合理的使用多线程结构,可以并行的处理多项任务,避免了不相关任务之间的等待,充分利用硬件资源(现往很多CPU 均为多核设计) 提高程序的效率。
进程():我们可以简单的认为一个运行中的程序就是一个进程。进程是操作系统分配CPU 资源与内存资源的最小单位。过去的操作系统是单进程的 (如DOS 操作系统),同一时刻只能有一个进行运行;现代的操作系统均是多进程的,允许多个进程同时运行(同时运行QQ和IE 浏览器),操作系统采用时间片轮转法或其他算法为进程分配CPU 资源,下图是 操作系统中某一时刻的进程列表:

对于Java SE 程序,将运行中的Java 程序称为进程则不准确。因为Java 程序并非由操作系统执行分R配CPU资源井执行,而是通过Java 虚拟机执行。对操作系统而言,java虚拟机才是进程 ( 我们在进程列表中会看到java. exe 或javaw.exe ),而Java 程序并不算做进程。
线程():进程内部可以拥有1 至多个线程java多线程聊天程序,操作系统将资源分配给进程后,进程再将资源分配给线程,由线程完成具体的工作。可以认为进程是线程的容器。我们知道Java SE 程序的执行入口是main 函数,main 函数执行时所属的线程称为一般称为主线程。除了主线程,Java 虚拟机还会启动垃圾回收线程等其他线程。
线程的状态:多个线程之间可以并行执行,也可以根据需要让一个线程等待另一个线程,或暂停一个线程。一般来说java多线程聊天程序,线程的状态有就绪(new)、执行()、等待()阻塞()、终止() 等。
守护线程( ): 一般来说,进程要等到所有线程都终止运行后才结束。但对于java 中的垃圾回收等线程,是在程序运行过程中一直执行的,不会主动终止,为了保证进程能正常结束,可以将这一类线程标注为守护线程java多线程聊天程序,在java SE 中,Java虚拟机会在所有非守护线程终止后结束进程 (还有一种情况: 调用. exit ()方法也会导致进程结束)。
2. 创建和启动线程
Java 中有两种创建线程的方法,一种是编写类继承 类,一种是编写类实现方法,我们使用第一种方式。基本写法如下:
代码演示:创建线程
class {
void run() { ①
.out.(“线程开始执行!”;
try {
.sleep(1000);
}catch ( e) {
e.();
.out.(“线程执行完毕!”;
class {

void maln( args) {
.out.(”创建线程!”) ;
= new (); ②
.out.(”启动线程!”);
.start(); ③
.out.(“启动完毕! ”);
输出结果如下:
创建线程!
启动线程!
启动完毕!
线程开始执行! ④
线程执行完毕!
代码解析:

① 线程必须覆盖父类的run 方法。run 方法中的代码会在线程启动的时候执行。run 方法执行结束线程也就执行结束、变为终止状态。
② 实例化线程会使线程处于就绪状态,但这时不会执行线程中的代码。
③ 调用那个线程的start 方法会启动线程,将线程变为执行状态。
④ 从运行结果可以看出了解Java多线程及如何创建和启动多线程?,主线程输出”启动线程”后井没有等待子线程了解Java多线程及如何创建和启动多线程?, 直接继续执行输出 “启动完毕” ,说明此时主线程与新创建的子线程在同时运行。
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » 了解Java多线程及如何创建和启动多线程?
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码

