下载  >  开发技术  >  Java  > java线程 线程学习资料 java线程教程

java线程 线程学习资料 java线程教程 评分

java线程 线程 教程 java线程教程 java线程学习资料 本教程有什么内容? 本教程研究了线程的基础知识— 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单 程序。 我们还将研究更复杂的、使用线程的应用程序的基本构件— 如何在线程之间交换数据、如何控制 线程以及线程如何互相通信。 我应该学习这个教程吗? 本教程适用于拥有丰富 Java 语言应用知识,但又没有多少多线程或并发性经验的Java 程序员。 学习完本教程之后,您应该可以编写一个使用线程的简单程序。您还应该可以阅读并理解以简单方 法使用线程的程序。
爱着 W。了weaE Java线程 第二章线程基础 什么是线程? 几乎每种操作系统都支持进程的概念——进稈就是在某种程度上相互隔离的、独立运行的稈序。 线程化是允许多个活动共存于一个进程中的工只。大多数现代的操作系统祁支持线程,而且线程的 概念以各种形式已存在了好多年。是第一个在语言本身中显式地包含线程的主流编程语言,它 没有把线程化看作是底层操作系统的工只。 有时候,线程也称作轻量纵进程。就象进程一样,线程在程序中是独立的、并发的执行路径,每个 线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与分隔的进程相比,进程中的 线程之间的隔离程度要小。它们共享内存、文件句柄和其它每个进程应有的状态。 进程可以支持多个线程,它们看似同时执行,但互相之间并不同步。一个进程中的多个线程共亨相 同的内存地址空闩,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。 尽管这让线程之问共亨信息变得更容易,但您必须小心,确保它们不会妨偦同一进程里的其它线程。 线程⊥具和看似简单。但是,编写有效使用线程的复杂程序并不十分容易。因为有多个 线程共存在相同的内存空间中并共享相同的变量,所以您必须小心,确保您的线程不会互相十扰 每个 程序都使用线程 每个程序都至少有一个线程一主线程。当一个程序启动时,会创建主线程,并 在该线程中调用稈序的 方法。 还创建了其它线程,您通常都看不到它们一例如,与垃圾收集、对象终止和其它内务处 理任务相关的线程。其它工具也创建线程,如(抽象窗口工具箱( 或 工具箱、 容器、应用稈序服务器和(远程方法调用( 为什么使用线程? 爱好者 第页 爱着 W。了weaE Java线程 在程序中使用线程有许多原因。如果您使用 或 ()技术,您也许没有意识到您己经在使用线程了。 使用线程的些原因是它们可以帮助 使响应更快 利用多处理器系统 简化建模 执行异步或后台处理 响应更快的 事件驱动的工具箱(如 和 )有一个事件线程,它处理事件,如击键或鼠标点击。 稈序把事件侦听器与对象连接。当特定事件(如单击了某个按钮)发牛时,这些 侦听器会得到迸知。事件侦听器是在事件线程中调用的。 如果事件侦听器要执行持续很久的仟务,如检査一个人文档中的拼写,事件线稈将忙于运行拼写检 査器,所以在完成事件侦听器之前,就不能处理额外的事件。这就会使程序看来似乎停滞了, 让用户不知所措。 要避免使延迟响应,事件侦听器应该把较长的任务放到另一个线程中,这样线程在任务的 执行过程中就可以继续处理事件(包括取消正在执行的长时间运行任务的请求) 利用多处理器系统 多处理器()系统比过去更普及了。以前只能在大型数据中心和科学计算设施中才能找到它们。 现在诈多低端服务器系统一甚至是一些台式机系统一都有多个处理器。 现代操作系统,包括 都可以利用多个处理器并调度线程在 任何可用的处理器上执行 爱好者 第页 爱着 W。了weaE Java线程 调度的基木单位通常是线程;如果某个程序只有一个活动的线程,它一次只能在一个处理器上运行。 如果某个程序有多个活动线程,那么可以同时调度多个线程。在精心设计的程序中,使用多个线程 可以提高程序吞吐量和性能。 简化建模 在某些情况下,使用线程可以使程序编写和维护起来更简单。考虑一个仿真应用程序,您要在其中 模拟多个实体之间的交互作用。给每个实体一个自己的线程可以使许多仿真和对应用程序的建模大 大简化。 另一个适合使用单独线程来简化程序的示例是在一个应用程序有多个独立的事什驱动的组件的时 候。例如,一个应用程序可能有这样一个组件,该组件在某个事件之后用秒数倒计时,并更新屏幕 显示。与其让一个主循环定期检查时间并更新显示,不如让一个线程什么也不做,一直体眠,直到 某一段时间后,更新屏幕上的计数器,这样更简单,而且不容易出错。这样,主线程就根本无需担 心计时器 异步或后台处理 服务器应用程序从远程来源〔如套接字)获取输入。当读取套接字肘,如果当前没有可用数据,那 么对 的调用将会阻塞,直到有可用数据为止 如果单线程程序要读取套接字,而套接字另端的实体并木发送任何数据,那么该程序只会永远等 待,而不执行其它处理。相反,程序可以轮询套接宇,查看是香有可用数据,但通常不会使用这种 做法,因为会影响性能 但是,如果您创建了一个线程來读取套接字,那么当这个线程等待套接字中的输入时,主线程就可 以执行其它任务。您甚至可以创建多个线程,这样就可以同时读取多个套接字。这样,当有可用数 据时,您会迅速得到通知(因为忙在等待的线程被唤醒),而不必经常轮询以检查是否有可用数据 使用线程等待套接字的代码也比轮询更简单、更不易出错 爱好者 第页 爱着 W。了weaE Java线程 简单,但有时有风险 虽然线程工只非常易于使用,但当您创建多线程程序时,应该尽量避免一些风险。 当多个线程访问同一数据项〔如静态字段、可全局访问对象的实例字段或共享集合)时,需要确保 它们协调了对数据的访问,这样它们都可以看到数据的一致视图,而且相互不会干扰另一方的更改 为了实现这个目的,语言提供了两个关键字 和 。我们将稍后在本教 程中研究这些关键字的用途和意义。 当从多个线稈中访问变量时,必颏确保对该访问正确地进行了同步。对于简单变量,将变量声明成 也许就足够了,但在大多数情况下,需要使用同步。 如果您将要使用同步来保护对共亨变量的访问,那么必须确保在稈序中所有访问该变量的地方都使 用同步。 不要做过头 虽然线程可以大大简化诈多类型的应用程序,过度使用线程可能会危及程序的性能及其可维护性。 线程消耗了资源。因此,在不降低性能的情况下,可以创建的线程的数量是有限制的。 尤其在单处理器系统中,使用多个线程不会使主要消耗资源的程序运行得更快。 示例:使用一个线程用于计时,并使用另一个线程完成工作 以下示例使用两个线程,个用于计时,个用于执行实际L作。主线程使用非常简单的算法计算 素数。 在它启动之前,它创建并启动一个计时器线程,这个线程会休眠十秒钟,然后设置一个主线程要检 查的标志。十秒钟之后,主线程将停止。请注意,共享标志被声明成 爱好者 第页 爱着 W。了weaE Java线程 爱好者 第页 爱着 W。了weaE Java线程 小结 语言包含了内置在语言中的功能强大的线程工具,您可以将线程工具用于 增加应用程序的响应速度 利用多处理器系统 当程序有多个独立实体时,简化程厅逻辑 在不阻塞整个程序的情况下,执行阻塞 当使用多个线程时,必须谨慎,遵循在线程之间共享数据的规则,我们将在共享对数据的访问中讨 论这些规则。所有这些规则归结为一条基本原则:不要忘了同步。 第三章线程的生命 创建线程 在程序中创建线程有几种方法。每个程序至少包含一个线程:主线程。其它线程都是 通过 构造器或实例化继承类 的类来创建的。 线程可以通过直接实例化 对象或实例化继承 的对象来创建其它线程。在线程 基础中的示例(其中,我们在十秒钟之内计算尽量多的素数)中,我们通过实例化 类型的对象(它继承了 ),创建了一个线程。 当我们讨论程序中的线程时,也许会提到两个相关实体:完成工作的实际线程或代表线程的 对象。正在运行的线程通常是由操作系统创建的; 对象是由 创建的,作为 控制相关线程的一种方式。 爱好者 第页 爱着 W。了weaE Java线程 创建线程和启动线程并不相同 在一个线程对新线程的 对象调用 方法之前,这个新线程并没有真正开始执行 对象在其线程真正启动之前就已经存在了,而且其线程退出之后仍然存在。这可以让您控制 或获取关于已创建的线程的信息,即使线程还没有启动或已经完成了。 通常在构造器中通过 启动线程并不是好主意,这样做,会把部分构造的对象暴露给新的线 程。如果对象拥有一个线程,那么它应该提供一个启动该线程的 或 方法,而不是 从构造器屮启动它。(请参阋参考资料,获取提供此概念更详细说明的文章链接。) 结束线程 线程会以以下三种方式之一结束: 线程到达其 方法的末尾。 线程抛出个木捕获到的 或 另一个线程调用一个弃用的 方法。弃用是指这些方法仍然存在,但是您不应该在新 代码中使用它们,并且应该尽量从现有代码中除去它们。 当程序中的所有线程都完成时,程序就退出了。 加入线程 包含了等待另一个线程完成的方法 方法。当调用 时,调用线 程将阻塞,直到目标线程完成为止。 通常由使用线程的程序使用,以将大问题划分成许多小问题,每个小问题分配一个 线程。本章结尾处的示例创建了十个线程,启动它们,然后使用 等待它们全部完成。 爱好者 第页 爱着 W。了weaE Java线程 调度 除了何时使用 和 外,线程调度和执行的计时是不确定的。如果两 个线程同时运行,而且都不等待,您必须假设在任何两个指令之间,其它线程都可以运行并修改程 序变量。如果线程要访问其它线程可以看见的变量,如从静忞字段(全局变量)直接或间接引用的 数据,则必须使用同步以确保数据一致性 在以下的简单示例中,我们将创建并启动两个线程,每个线程都打印两行到 我们并不知道这些行按什么顺序执行,只知道“”在“”之前打印,以及“”在“”之前打印。 输出可能是以下结果中的任何一种: 爱好者

...展开详情
所需积分/C币:10 上传时间:2012-07-20 资源大小:281KB
举报 举报 收藏 收藏
分享 分享
java线程 线程学习资料 java线程教程

java线程 线程 教程 java线程教程 java线程学习资料 本教程有什么内容? 本教程研究了线程的基础知识— 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单 程序。 我们还将研究更复杂的、使用线程的应用程序的基本构件— 如何在线程之间交换数据、如何控制 线程以及线程如何互相通信。 我应该学习这个教程吗? 本教程适用于拥有丰富 Java 语言应用知识,但又没有多少多线程或并发性经验的Java 程序员。 学习完本教程之后,您应该可以编写一个使用线程的简单程序。您还应该可以阅读并理解以简单方 法使用线程的程序。

立即下载
Java线程Java线程Java线程Java线程

Java线程Java线程Java线程Java线程Java线程Java线程

立即下载
java 线程java 线程

java 线程java 线程java 线程java 线程java 线程java 线程java 线程java 线程java 线程

立即下载
java线程java线程

java线程java线程java线程java线程java线程java线程java线程java线程

立即下载
Java线程Java线程

java 线程 新手java 线程 新手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中却完全不同。Java的线程工具易于使用,并且像Java中的其他东西一样可以在不同的平台之间移植。这是一件好事,因为如果没有线程,那么除了最简

立即下载
java线程学习笔记

java线程学习笔记

立即下载
Java线程讲解Java线程讲解

Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解

立即下载
java线程精讲java线程精讲

java线程精讲java线程精讲java线程精讲java线程精讲

立即下载
java线程同步java线程同步

java线程同步java线程同步java线程同步

立即下载
java线程学习资料

关于java线程的一些理解。 和大家分享一下

立即下载
java线程学习教程

本教程适用于拥有丰富 Java 语言应用知识,但又没有多少多线程或并发性经验的Java 程序员。 学习完本教程之后,您应该可以编写一个使用线程的简单程序。您还应该可以阅读并理解以简单方法使用线程的程序。

立即下载
java线程学习总结

线程中一些基本术语和概念 线程中一些基本术语和概念

立即下载
java线程入门,java线程入门

java线程入门java线程入门java线程入门java线程入门java线程入门java线程入门java线程入门java线程入门

立即下载
java线程的学习

java语言支持多线程,这就是我们想要学习java语言的必要之路。

立即下载
ModbusTCP/RTU网关设计

基于UIP协议栈,实现MODBUS联网,可参考本文档资料,有MODBUS协议介绍

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载
iCopy解码软件v1.0.1.7.exe

解ic,id,hid卡密码破解ic,id,hid卡密码破解ic,id,hid破解ic,id,hid卡破解ic,id,hid卡密码密码卡密码破解ic,id,hid卡...

立即下载