`
ysl77253
  • 浏览: 4137 次
  • 性别: Icon_minigender_1
  • 来自: 四川成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

java线程学习

    博客分类:
  • java
阅读更多

线程的状态表示线程正在进行的活动以及在此时间段内所能完成的任务.线程有创建,可运行,运行中,阻塞,死亡五中状态.一个具有生命的线程,总是处于这五种状态之一:
1.创建状态
使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread)
2.可运行状态
使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable)
3.运行中状态
Java运行系统通过调度选中一个Runnable的线程,使其占有CPU并转为运行中状态(Running).此时,系统真正执行线程的run()方法.
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态(Blocked)
5.死亡状态
线程结束后是死亡状态(Dead)

同一时刻如果有多个线程处于可运行状态,则他们需要排队等待CPU资源.此时每个线程自动获得一个线程的优先级(priority),优先级的高低反映线程的重要或紧急程度.可运行状态的线程按优先级排队,线程调度依据优先级基础上的"先到先服务"原则.
线程调度管理器负责线程排队和CPU在线程间的分配,并由线程调度算法进行调度.当线程调度管理器选种某个线程时,该线程获得CPU资源而进入运行状态.

线程调度是先占式调度,即如果在当前线程执行过程中一个更高优先级的线程进入可运行状态,则这个线程立即被调度执行.先占式调度分为:独占式和分时方式.
独占方式下,当前执行线程将一直执行下去,直 到执行完毕或由于某种原因主动放弃CPU,或CPU被一个更高优先级的线程抢占
分时方式下,当前运行线程获得一个时间片,时间到时,即使没有执行完也要让出CPU,进入可运行状态,等待下一个时间片的调度.系统选中其他可运行状态的线程执行

//继承Thread
public class MyThread_1 extends Thread
{
public void run()
{
//some code
}
}

//实现Runnable接口

public class MyThread_2 implements Runnable
{
public void run()
{
//some code
}
}

 

分享到:
评论

相关推荐

    Java线程 学习

    ### Java线程学习知识点 #### 一、Java线程概览 - **定义与作用**:线程是在程序中独立且并发执行的路径。在Java中,线程被设计为语言的一部分,而不是作为操作系统的底层工具。每个Java程序至少包含一个主线程,在...

    Java线程学习和总结

    在Java编程语言中,线程是程序执行的基本单元,它允许程序并发地...同时,"Java线程学习和总结.files"目录下的文件可能是与文章相关的辅助资料,例如代码示例或图片。建议结合这些资料一起学习,以获得更全面的知识。

    JAVA线程学习(源代码)

    本资源"JAVA线程学习(源代码)"提供了关于Java线程的源代码示例,帮助我们深入理解和实践线程的使用。 首先,我们要理解Java中的线程模型。Java线程由`java.lang.Thread`类或`java.util.concurrent.Executor`框架来...

    java线程学习笔记

    Java 线程学习笔记 Java 线程创建有两种方法: 1. 继承 Thread 类,重写 run 方法:通过继承 Thread 类并重写 run 方法来创建线程,这种方法可以使线程具有自己的执行逻辑。 2. 实现 Runnable 接口:通过实现 ...

    Java线程学习

    ### Java线程学习:深入理解线程生命周期与同步机制 #### 标题解析:Java线程学习 在Java编程语言中,线程是程序执行的基本单位之一,它允许并发执行多个任务,从而提高应用程序的效率和响应性。通过Java线程的...

    java线程学习教程

    ### Java线程学习教程知识点详解 #### 一、教程概览 - **适用人群**: 本教程主要面向那些已经熟练掌握了Java语言基本语法和应用,但对于多线程和并发编程经验较少的Java开发者。 - **目标**: 学习者通过本教程的...

    java线程学习一4

    在"java线程学习一4"这个主题中,我们将会深入探讨Java中的多线程概念,以及如何通过源码理解和使用相关工具进行线程管理。 首先,我们需要理解Java中的线程创建方式。Java提供了两种主要的线程创建方法:继承...

    经典线程例子——Java线程学习指南

    通过学习以上知识点,初学者可以对Java线程有基本的理解,逐步掌握并发编程的核心技能。实践中的线程例子将有助于巩固理论知识,加深对线程工作原理的把握。在学习过程中,不断编写和调试多线程程序,是提升技能的...

    Java线程学习好资料

    本文将深入探讨Java线程的学习要点,帮助你提升在多线程环境下的编程能力。 首先,我们要明白线程的基本概念。线程是操作系统分配CPU时间的基本单元,一个进程中可以有多个线程同时执行任务,这使得程序可以在同一...

    java线程学习专题资料

    本专题资料聚焦于Java线程的学习,包括从基础到进阶的各种知识点。 1. **线程创建方式**:Java提供了两种创建线程的方式,一是通过继承Thread类,重写run()方法;二是实现Runnable接口,然后创建Thread对象并传入...

    JAVA多线程学习内容

    总的来说,Java多线程学习涵盖了线程的创建、同步、通信、调度以及异常处理等多个方面,深入理解和掌握这些知识点对于提升Java程序的性能和复杂性至关重要。通过阅读提供的"Java多线程.pdf"文档,你可以进一步了解和...

    多线程断点下载(java线程学习)

    java中多线程下载学习,又新增了断点的实现,可以实现暂停继续下载网络文件的功能

    Java多线程学习Java多线程学习Java多线程学习Java多线程学习.txt

    Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java...

    Java线程学习很有用

    对于学习java线程的初学者是很有用的资料,让自己很快的上手,帮助自己学习很快的知识。。。

Global site tag (gtag.js) - Google Analytics