`

Java中的线程

阅读更多

Java线程:概念与原理
一、现在的操作系统是多任务操作系统
    多线程是实现多任务的一种方式。进程是指内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如,在

windows系统中,一个运行的exe就是一个进程。线程是指进程的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行多个线程,线程总

是属于某个进程,进程中的多个线程共享进程的内存。
二、Java中的线程
    在Java中,“线程”指两件不同的事情:1、java.lang.Thread类的一个实例;2、线程的执行。
使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。一个Thread类实例只是一个对象,像Java中的任何其他对象一样

,具有变量和方法,生死于堆上。Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。一个Java应用总是从main()方

法开始运行,mian()方法运行在一个线程内,它被称为主线程。一旦创建一个新的线程,就产生一个新的调用栈。线程总体分两类:用户线程和守候线程。当所

有用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自己创建的。
三、Java中线程的实现
1、在Java中想实现多线程有两种手段,一种是集成Thread类,另一种就是实现Runnable接口。下面看继承自Thread类线程的创建原理:
  
首先定义一个线程类 该类必须继承自Thread类,同时必须明确的覆写run()方法

  如: class MyThread extends Thread{

  public void run(){ //覆写Thread类中的run方法此方法是线程中

  线程主体; 的主体

  }

  然后定义一个主类,实例化线程类的对象,发动启动线程的命令

  如: public class ThreadText{

  public stataic void main(String args[]){

  MyThread m1=new MyThread();//实例化对象

  m1.start();//启动多线程

  }

  };

  实现Runnable接口:

  首先定义一个线程类继承自Runnable接口

  如: class MyThread implements Runnable{

  public void run(){ //覆写Runnable接口中的run方法

  线程主体;

  }

  然后定义一个主类,实例化线程类的对象,发动启动线程的命令

  如: public class ThreadText{

  public stataic void main(String args[]){

  MyThread m1=new MyThread();//实例化Runnable子类对象

  Thread t1=new Thread(m1);//实例化Thread类对象

  t1.start();//启动多线程

  }

  };

三、线程的几种状态

  在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。

  第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。

  第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪

状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。

  第三是运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码。

  第四是阻塞状态。线程正在运行的时候,被暂停,通常是为了等待某个时间的发生(比如说某项资源就绪)之后再继续运行。sleep,suspend,wait等方法都

可以导致线程阻塞。

  第五是死亡状态。如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪。

分享到:
评论

相关推荐

    java中线程的应用例子

    4. **线程状态**:Java线程有五种状态:新建、可运行、运行、阻塞和死亡。了解这些状态可以帮助开发者更好地控制和调试线程。 5. **线程优先级**:每个线程都有一个优先级,Java中从1(`MIN_PRIORITY`)到10(`MAX_...

    java多线程Demo

    Java线程有10个优先级(MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY),默认优先级是NORM_PRIORITY。但是,线程优先级并不保证绝对的执行顺序,操作系统调度策略可能影响实际执行顺序。 7. join()方法: 一个线程...

    java中线程的有效使用

    学习这个项目,我们可以深入理解Java线程的创建、同步和协作,以及如何通过`wait()`和`notify()`实现线程间的通信。此外,通过分析和调试这些类,我们还可以掌握多线程环境中的死锁、活锁和饥饿等问题的识别和解决...

    在JAVA中线程起到的作用.pdf

    在Java编程语言中,线程扮演着至关重要的角色,特别是在多任务处理和并发执行中。线程使得程序能够同时执行多个任务,提高了系统的效率和响应性。以下是对Java中线程作用的详细解释: 首先,线程是程序执行的最小...

    Java中线程思维导图

    Java中线程思维导图

    java中线程的创建常见有如三种基本形式实例

    在Java编程语言中,线程是程序执行的最小单元,它可以与程序的其他部分并行运行。理解如何创建和管理线程是Java开发者必备的技能。本文将详细讲解Java中线程的三种基本创建形式,并通过实例进行深入解析。 ### 1. ...

    java中线程的相关知识及语法总结

    java中线程的相关知识及语法总结

    Java中一个线程执行死循环有什么后果

    在Java编程中,线程执行死循环可能会导致一系列的后果,尤其是在多线程环境中。首先,我们要理解死循环的概念:一个死循环就是程序中的某个循环条件始终为真,导致循环无法自然终止,持续消耗CPU资源。 标题所提及...

    java多线程作业.docx

    - Java中线程调度采用的是抢占式调度模式,即高优先级的线程会抢占低优先级线程的执行权。 3. **线程状态**: - 新建(New):线程对象刚刚被创建时的状态。 - 就绪(Runnable):线程对象创建后,其他线程调用...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java多线程经典案例

    本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致数据不一致。Java提供了多种同步机制,如synchronized关键字、Lock接口...

    Java多线程设计模式上传文件

    Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...

    JAVA单线程多线程

    ### JAVA中的单线程与多线程概念解析 #### 单线程的理解 在Java编程环境中,单线程指的是程序执行过程中只有一个线程在运行。这意味着任何时刻只能执行一个任务,上一个任务完成后才会进行下一个任务。单线程模型...

    java多线程之A线程等B、C线程都执行完在执行的结果示例

    在A线程中,我们可以创建一个CountDownLatch,初始化为2(表示B和C两个线程),然后在B和C线程的最后调用countDown()。A线程通过await()方法阻塞自己,直到计数值变为0。 ```java CountDownLatch latch = new ...

    JAVA多线程实验报告

    在本实验报告中,我们探讨了Java多线程技术在实际编程中的应用,特别是通过编写applet程序展示了如何实现滚动字符串和动态动画效果。实验主要分为两个部分:滚动字符串和蓝色反弹球。以下是对这些知识点的详细说明:...

    java 多线程操作数据库

    由于数据库连接是一种昂贵的资源,应避免在每个线程中重复创建连接,通常采用连接池的方式进行管理。 3. **数据插入操作**:代码示例展示了如何使用预编译语句(PreparedStatement)执行数据插入操作。预编译语句...

    Java 模拟线程并发

    Java 模拟线程并发是编程领域中的一个重要概念,尤其在多核处理器和高并发应用中,理解并熟练掌握线程并发技术对于提升程序性能至关重要。在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

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

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

    java线程(文字版PDF)

    ### Java线程基础 #### 一、操作系统中的线程与进程概念 在现代操作系统中,多线程是一种常见的实现多任务的方式。对于操作系统而言: - **进程**:指的是内存中运行的一个应用程序。每个进程拥有自己独立的一块...

Global site tag (gtag.js) - Google Analytics