`
jocks
  • 浏览: 6707 次
文章分类
社区版块
存档分类
最新评论

java多线程基础1

 
阅读更多

java使用Thread类来代表线程,所有的 线程都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段代码 。

  1. 在java中有两种实现多线程的方式,继承Thread类和实现Runnable接口,之后还要重写run()方法,但我们启动线程时是调用start()方法,

start方法再调用run()方法。具体的实现方法如下:

继承Thread类:

实现Runnable接口:

另外在SecondThread类中,这里的i是共享的,也就是采用runnable接口方式创建的多个线程可以共享线程类的实例变量。这是因为在这种方式下,

程序所创建的runnable对象只是线程的target,而多个线程可以共享一个target,所以多个线程共享一个线程类的实例变量。


2, 线程的生命周期

当线程被创建并启动以后,它既不是已启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,要经过新建,就绪,运行,阻塞和死亡5种状态。


a,新建和就绪状态

当程序使用new关键字创建了一个线程之后,该线程就出于新建状态,此时它和其他java对象一样,仅仅由java虚拟机为其分配内存,并初始化其成员变量的值。此时的

线程随想没有表现出任何现成的动态特征,程序也不会执行线程的线程执行体。当线程对象调用了start()方法之后,该线程就处于就绪状态,java虚拟机就会为其创建方

法调用栈和程序计数器,处于这个状态中的线程并没有开始运行,只是表示该线程可以运行了。至于该线程何时开始运行,取决于JVM里线程调度器的调度。

注意:就绪状态相当于“等待执行”,但该线程并未真正进入运行状态

b,运行和阻塞状态


c,线程死亡

线程会以如下三种方式结束,结束后就处于死亡状态:

run()方法执行完成,线程正常结束

线程抛出一个为扑火的Exception或error

直接调用该线程的stop()方法来结束线程----该方法容易导致死锁,通常不推荐使用

注意:不要试图对一个已经死亡的线程调用start()方法使它重新启动,死亡就是死亡,该线程不可再次作为线程执行。

可以调用isAlive()方法测试某个线程是否死亡,当线程处于就绪,运行,阻塞状态时,方法返回true,当处于新建,死亡状态时,该方法返回false。

分享到:
评论

相关推荐

    java多线程设计

    一、Java多线程基础 1. 线程的创建:Java提供了两种创建线程的方式——继承Thread类和实现Runnable接口。继承Thread类可以直接创建一个新的线程类,而实现Runnable接口则可以将线程逻辑封装在任何类中,更利于代码...

    java多线程示例

    一、Java多线程基础 1. 创建线程: - 继承Thread类:创建一个新的类,继承自Thread类,重写其run()方法,然后创建该类的实例并调用start()方法。 - 实现Runnable接口:创建一个实现了Runnable接口的类,实现run()...

    java多线程作业.docx

    #### 二、Java多线程基础 1. **线程创建**: - 继承`Thread`类。 - 实现`Runnable`接口。 2. **线程调度**: - 线程调度是由操作系统完成的,Java虚拟机通过与操作系统交互来管理线程的执行。 - Java中线程...

    Java多线程编程实战指南 设计模式篇.rar

    一、Java多线程基础 1. 线程创建:Java提供了两种创建线程的方式,一是通过实现Runnable接口,二是继承Thread类。两者各有优缺点,Runnable适合资源复用,而Thread类则直接继承了Java对象,操作更直接。 2. 线程控制...

    java 多线程操作数据库

    1. **多线程基础**:多线程是Java编程中的一个重要概念,允许程序同时执行多个任务。在本示例中,通过创建多个`Thread`对象并调用它们的`run()`方法来实现并行处理数据库操作。 2. **数据库连接管理**:在多线程...

    黑马程序员_张孝祥_Java多线程与并发库 视频+代码+资料

    ### Java多线程基础 1. **线程的概念**:在Java中,线程是程序执行流的基本单元。一个标准的Java应用程序至少有一个线程,即主(main)线程。通过创建多个线程,可以实现并发执行,提高程序的运行效率。 2. **创建...

    Java多线程知识点总结

    总之,掌握Java多线程的生命周期、创建、启动、同步以及线程池的使用是编写高效、稳定并发程序的基础。理解这些知识点对于解决并发编程中的问题,比如资源竞争、死锁、线程安全性等问题,至关重要。在实际开发中,...

    java多线程经典案例

    通过分析并实践`threadTest`案例,我们可以深入理解Java多线程的原理和使用技巧,为编写高效并发程序打下坚实基础。同时,也要注意多线程编程中的死锁、活锁和饥饿等问题,合理设计线程间的交互,避免出现不可预期的...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    java多线程处理数据库数据

    首先,我们需要了解Java中的线程基础。线程是程序执行的最小单位,一个进程可以包含多个线程。在Java中,我们可以使用`Thread`类或者`Runnable`接口来创建线程。然而,为了更好地管理和控制线程,Java并发包提供了如...

    Java多线程知识,龙果学院

    一、Java多线程基础 1. **线程的概念**:线程是程序执行的最小单元,一个进程可以有多个线程同时执行,使得程序能够并行处理多个任务。 2. **线程的创建方式**:Java提供了两种创建线程的方式,一是继承Thread类,...

    JAVAJAVA多线程教学演示系统论文

    1. **多线程基础**:论文可能会首先介绍多线程的基本概念,解释为什么在JAVA中需要使用多线程,以及多线程如何提升程序的执行效率。这部分内容可能会涉及到线程的创建、启动、同步和通信等基础知识。 2. **JAVA多...

    汪文君JAVA多线程编程实战(完整不加密)

    《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...

    java多线程基础说课PPT教案.pptx

    java多线程基础说课PPT教案.pptx

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...

    java 多线程编程实战指南(核心 + 设计模式 完整版)

    1. **线程基础** - **线程的创建**:Java提供了两种创建线程的方式,一是通过实现`Runnable`接口,二是继承`Thread`类。每种方式都有其适用场景,需要根据实际需求选择。 - **生命周期**:线程有新建、就绪、运行...

    JAVA零基础到高级进阶特训营 JAVA多线程并发设计+Spring高级+数据库开发+JAVA基础等

    这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等

    JAVA多线程基础演练DEMO

    这个"JAVA多线程基础演练DEMO"提供了一些基础示例,帮助开发者更好地理解和掌握多线程的基本概念和用法。以下将详细讲解Java多线程的相关知识点: 1. **线程的创建** - **继承Thread类**:创建一个新类,继承自`...

    武汉理工大学Java多线程实验源码

    总结来说,这个实验源码涵盖了Java多线程的基础和应用,包括线程的创建、运行、同步、通信,以及网络编程和数据库操作。通过这些实验,学生可以深入理解Java并发编程的核心概念,并掌握实际开发中的多线程设计技巧。

Global site tag (gtag.js) - Google Analytics