Java线程的概念

作者: 433c801e5456 | 来源:发表于2019-06-12 09:58 被阅读1次
Java系统学习路线.jpg

和其他多数计算机语言不同,Java内置支持多线程编程(multithreaded programming)。

多线程程序包含两条或两条以上并发运行的部分。程序中每个这样的部分都叫一个线程(thread),每个线程都有独立的执行路径。因此,多线程是多任务处理的一种特殊形式。

你一定知道多任务处理,因为它实际上被所有的现代操作系统所支持。然而,多任务处理有两种截然不同的类型:基于进程的和基于线程的。认识两者的不同是十分重要的。

对很多读者,基于进程的多任务处理是更熟悉的形式。进程(process)本质上是一个执行的程序。因此,基于进程(process-based) 的多任务处理的特点是允许你的计算机同时运行两个或更多的程序。举例来说,基于进程的多任务处理使你在运用文本编辑器的时候可以同时运行Java编译器。在基于进程的多任务处理中,程序是调度程序所分派的最小代码单位。

在基于线程(thread-based) 的多任务处理环境中,线程是最小的执行单位。这意味着一个程序可以同时执行两个或者多个任务的功能。例如,一个文本编辑器可以在打印的同时格式化文本。所以,多进程程序处理“大图片”,而多线程程序处理细节问题。

多线程程序比多进程程序需要更少的管理费用。进程是重量级的任务,需要分配它们自己独立的地址空间。进程间通信是昂贵和受限的。进程间的转换也是很需要花费的。另一方面,线程是轻量级的选手。它们共享相同的地址空间并且共同分享同一个进程。线程间通信是便宜的,线程间的转换也是低成本的。当Java程序使用多进程任务处理环境时,多进程程序不受Java的控制,而多线程则受Java控制。

多线程帮助你写出CPU最大利用率的高效程序,因为空闲时间保持最低。这对Java运行的交互式的网络互连环境是至关重要的,因为空闲时间是公共的。举个例子来说,网络的数据传输速率远低于计算机处理能力,本地文件系统资源的读写速度远低于CPU的处理能力,当然,用户输入也比计算机慢很多。在传统的单线程环境中,你的程序必须等待每一个这样的任务完成以后才能执行下一步——尽管CPU有很多空闲时间。多线程使你能够获得并充分利用这些空闲时间。

如果你在Windows 98 或Windows 2000这样的操作系统下有编程经验,那么你已经熟悉了多线程。然而,Java管理线程使多线程处理尤其方便,因为很多细节对你来说是易于处理的。

相关文章

  • Android 线程池的封装

    GlobalThreadPools.java: 调用: 线程池线程池概念来源于Java中的Executor,它是一...

  • Java多线程-线程基础

    1.线程概念 2.线程状态 3.Java线程提供的API 4.Java Object提供的API 5.线程协作方式...

  • Java线程的生命周期

    概览 Java语言中,多线程是由线程的核心概念驱动的,而线程的生命周期会经历以下的不同状态。 Java java....

  • java线程

    java线程的概念 为何要多线程 线程是比线程更小的概念,一个进程里边会有多个线程。一个cup要处理多个事情,只能...

  • Java线程概念

    上一篇文章我们讲述了进程与线程概述,接下来的文章我们来探讨Java线程相关的内容。 接下来我们先了解几个概念性的问...

  • 线程池原理剖析&锁的深度化

    线程池原理剖析 Java中开辟出了一种管理线程的概念,这个概念叫做线程池,可以方便的管理线程,减少内存消耗。 如何...

  • Java多线程之线程池深入讲解

    1 线程池介绍 1.1 线程池概念 Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Jav...

  • Java线程的概念

    和其他多数计算机语言不同,Java内置支持多线程编程(multithreaded programming)。 多线...

  • Java线程的运行流程

    上一篇文章我们讲述了Java线程概念,接下来的文章我们分析一下Java线程的运行流程 Java线程源自于JVM,受...

  • Android常用的线程池

    Android应用开发是一种多线程编程,Android中的线程概念源于Java,所以线程的用法也直接用的是Java...

网友评论

    本文标题:Java线程的概念

    本文链接:https://www.haomeiwen.com/subject/dlkkfctx.html