`
不平凡的人
  • 浏览: 35214 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

Java与线程

 
阅读更多

本文从以下方面Java与线程的内容:

 

一、线程实现

二、Java线程调度

三、状态转化

 

一、线程实现

        线程是比进程轻量级的调度执行单位,线程引入,可以把进程的资源分配与调度分开,各个线程可以共享资源又可以独立调度;

        线程是CPU调度的基本单位;

 

1、线程的实现方式

      此处,并非java线程的实现。

      三种线程实现的方式:内核线程实现,用户线程实现,用户线程加上轻量级的进程的混合实现       

 

 (1)内核线程(Kernel thread,KLT)

          由操作系统内核支持的线程,这种线程由内核完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。

          程序不会直接使用内核线程,使用内核线程的一个高级接口--轻量级进程(Light weight Process,LWP),轻量级进程就是通常意义的线程,先有内核线程,才有轻量级进程。

 

(2)用户线程(User thread,UT)

          完全建立用户空间线程库上,系统内核不能感知线程存在。线程的建立,同步,销毁,调度,不需要内核参与完全由用户态中完成。

          程序实现得当,不需要与内核线程进行切换高效率低消耗。

          缺点:没有内核线程的保障,操作系统分配了资源给进程,诸如:”阻塞如何处理“,”多处理器系统如何将线程映射到其他处理器“这类问题的解决就会异常困难。

 

(3)混合线程

         用户线程与内核线程一起实现。

         操作系统支持轻量级进程作为内核线程与用户线程之间的桥梁,内核提供线程的调度及处理器映射功能,用户线程的系统调用通过轻量级线程完成,降低了进程被阻塞的风险。

 

2、java线程的实现

     JDK1.2之前名为“绿色线程”的用户线程实现,JDK1.2之后基于操作系统的原生线程实现。

 

二、Java线程调度

       调度方式有两种:协同式线程调度、抢占式线程调度

 

1、协同式线程调度

     优点:

              线程执行时间由线程本身控制;

              实现简单,线程执行完成自己的线程任务才会切换另外一个线程,切换操作自己可知;

     缺点:

              线程执行时间不可控制,如果一个线程出现问题,没有及时通知系统进行切换,将会使程序阻塞;

 

2、抢占式线程调度

     优点: 

              每个线程由系统分配执行时间,线程切换不由线程本身决定;

 

三、状态转换

        java语言定义进程的6中状态:

        新建(New)、运行(Runable)、无限等待(Waiting)、限期等待(Timed Waiting)、阻塞(Blocked)、结束(Terminated)



 

            

  • 大小: 32.6 KB
分享到:
评论

相关推荐

    Java与线程.pdf

    Java中的线程实现主要采用了1:1的线程模型,即每个Java线程直接映射到一个操作系统原生线程。这种模型在主流平台上的主流商用Java虚拟机中普遍使用。 ##### 3.1 Java线程模型 - **1:1模型**:Java虚拟机中的每个...

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

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

    Java多线程知识点总结

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

    java多线程Demo

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

    JAVA单线程多线程

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

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程ppt

    java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题

    java多线程的讲解和实战

    4. **线程优先级与调度**:Java的`Thread`类提供了设置线程优先级的方法,如`setPriority(int priority)`,但实际线程调度依赖于操作系统的策略,优先级并不保证绝对的执行顺序。 5. **守护线程(Daemon)**:守护...

    java 多线程操作数据库

    ### Java多线程操作数据库:深入解析与应用 在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入...

    Java 模拟线程并发

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

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

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

    java多线程读取文件

    Java多线程读大文件 java多线程写文件:多线程往队列中写入数据

    Java多线程与线程安全实践(基于Http协议的断点续传)源码.zip

    Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多线程与线程安全实践Java多...

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...

    Java多线程编程核心技术_完整版_java_

    2. 守护线程与用户线程:守护线程不阻碍JVM退出,而用户线程则会阻止JVM退出。 八、中断与异常处理 1. Thread.interrupt():用于中断线程,但不一定立即停止,需要在run()方法内部检查中断标志并作出相应处理。 2. ...

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    java多线程处理数据库数据

    在Java编程中,多线程处理是提升程序性能和效率的重要手段,特别是在处理大量数据库数据时。...记得在设计时充分考虑线程间的协作与同步,以及数据库连接的管理和优化,以确保程序的稳定性和性能。

    java多线程分页查询

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

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

    总的来说,《JAVA多线程教学演示系统》这篇论文不仅是对JAVA多线程技术的理论探讨,更是一个实践与教学相结合的优秀范例,对于提升学生的多线程编程能力具有很高的参考价值。VB图书管理系统论文范文虽不在本文讨论...

    java多线程查询数据库

    在Java编程中,多线程查询数据库是一种常见的优化策略,特别是在处理大数据量或者需要并行执行多个查询时。本文将详细探讨如何利用Java的多线程技术和线程池来实现并发查询数据库,以及相关的文件`BatchDataUtil....

Global site tag (gtag.js) - Google Analytics