《Java线程与并发编程实践》—— 1.4 小结

1.4 小结

Java应用程序通过线程执行,线程在程序代码中具有独立的执行路径。每个Java应用程序都有一个执行main()函数的默认主线程。应用程序也可以创建线程在后台操作时间密集型任务以确保对用户的响应。这些封装了代码执行序列的线程对象就称为runnables。

Thread类为底层操作系统的线程体系架构提供一套统一接口(操作系统通常负责创建和管理线程)。单个的操作系统线程关联为一个Thread对象。

Runnable接口为关联Thread对象的线程提供执行代码。这些代码放在Runnable的void run()方法中,尽管它不接收任何参数且没有返回值,但有可能抛出异常。

除了默认的主线程,线程都是通过创建合适的Thread和Runnable对象而引入应用程序的。Thread类声明了几个构造方法来初始化Thread对象。其中有几个构造方法需要接收Runnable对象作为参数。

一个Thread对象关联着一条线程的状态。这个状态由线程名称、线程存活的标识、线程的执行状态(是否正在执行?)、线程的优先级以及线程是否为守护线程等标识构成。

在创建一个Thread对象或者其子类的对象之后,你可以通过调用Thread的void start()方法启动与该对象关联的线程。如果线程之前已经启动且处于运行状态,又或者线程已经死亡,这个方法就会抛出java.lang.Illegal ThreadStateException。

之前的线程任务都和如何配置一个线程对象以及启动关联的线程相关。不过,Thread类也能支持更多高级的任务,包括中断其他线程、将线程join到另一条线程中以及致使线程睡眠。

第2章会涉及与同步相关的话题。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-08-03 17:12:44

《Java线程与并发编程实践》—— 1.4 小结的相关文章

《Python机器学习实践指南》——导读

前言 Python机器学习实践指南 机器学习正在迅速成为数据驱动型世界的一个必备模块.许多不同的领域如机器人.医学.零售和出版等,都需要依赖这门技术.在这本书中,你将学习如何一步步构建真实的机器学习应用程序. 通过易于理解的项目,你将学习如何处理各种类型的数据,如何以及何时应用不同的机器学习技术,包括监督学习和无监督学习. 本书中的每个项目都同时提供了教学和实践.例如,你将学习如何使用聚类技术来发现低价的机票,以及如何使用线性回归找到一间便宜的公寓.本书以通俗易懂.简洁明了的方式,教你如何使用机

《Python机器学习实践指南》——第1章 Python机器学习的生态系统

第1章 Python机器学习的生态系统 Python机器学习实践指南 机器学习正在迅速改变我们的世界.作为人工智能的核心,我们几乎每天都会读到机器学习如何改变日常的生活.一些人认为它会带领我们进入一个风格奇异的高科技乌托邦:而另一些人认为我们正迈向一个高科技天启时代,将与窃取我们工作机会的机器人和无人机敢死队进行持久的战争.不过,虽然权威专家们可能会喜欢讨论这些夸张的未来,但更为平凡的现实是,机器学习正在快速成为我们日常生活的固定装备.随着我们微小但循序渐进地改进自身与计算机以及周围世界之间的互

《Python机器学习实践指南》——1.2 Python库和功能

1.2 Python库和功能 现在,我们已经对数据科学工作流的每一步有了初步的理解,下面来看看在每一步中,存在哪些有用的Python库和功能可供选择. 1.2.1 获取 访问数据常见的方式之一是通过REST风格的API接口,需要知道的库是Python Request库.它被称为给人类使用的HTTP,为API的交互提供了一个整洁和简单的方式. 让我们来看一个使用Requests进行交互的例子,它从GitHub的API中拉取数据.在这里,我们将对该API进行调用,并请求某个用户的starred库列表

《Python机器学习实践指南》——1.4 小结

1.4 小结 在本章中,我们介绍了数据科学/机器学习的工作流程.我们学习了如何让数据一步步地通过流水线的每个阶段,从最初的获取一直到最终的部署.本章还涵盖了Python科学栈中最重要的一些功能库及其关键特性. 现在,我们将利用这方面的知识和经验,开始创造独特的.有价值的机器学习应用程序.在下一章,你将看到如何运用回归模型来发现一个便宜的公寓,让我们开始吧!

《Python机器学习实践指南》——1.1 数据科学/机器学习的工作流程

1.1 数据科学/机器学习的工作流程 打造机器学习的应用程序,与标准的工程范例在许多方面都是类似的,不过有一个非常重要的方法有所不同:需要将数据作为原材料来处理.数据项目成功与否,很大程度上依赖于你所获数据的质量,以及它是如何被处理的.由于数据的使用属于数据科学的领域,理解数据科学的工作流程对于我们也有所帮助:整个过程要按照图1-1中的顺序,完成六个步骤:获取,检查和探索,清理和准备,建模,评估和最后的部署. 在这个过程中,还经常需要绕回到之前的步骤,例如检查和准备数据,或者是评估和建模,但图1

《Python机器学习实践指南》——1.3 设置机器学习的环境

1.3 设置机器学习的环境 本章已经介绍了一些可以通过pip(Python的包管理器)单独安装的库.不过,我强烈建议你安装预打包的解决方案,例如Continuum's Anaconda Python发行版.这是一个单一的可执行程序,包含几乎所有需要的软件包和依赖者.而且,因为这个发行版是针对Python科学栈的用户,它本质上是一个一劳永逸的解决方案. Anaconda也包括软件包管理器,使得包的更新变得如此简单. 只需简单地键入conda update ,那么库就会被更新到最近的稳定版本.

Python机器学习工具:Scikit-Learn介绍与实践

本文讲的是Python机器学习工具:Scikit-Learn介绍与实践, Scikit-learn官方的解释很简单: Machine Learning in Python, 用python来玩机器学习. 什么是机器学习 机器学习关注的是:计算机程序如何随着经验积累自动提高性能.而最大的吸引力在于,不需要写任何与问题相关的特定代码,泛型算法就能告诉你一些关于数据的秘密. Scikit-learn的优点 构建于现有的NumPy(基础n维数组包),SciPy(科学计算基础包), matplotlib(

《面向对象设计实践指南:Ruby语言描述》—第1章 1.5节小结

1.5 小结 面向对象设计实践指南:Ruby语言描述 如果某个应用程序存活了很长时间(也就是说,如果它成功了),那么它最大的问题将是如何应对变化.通过代码编排有效地应对变化是设计的事情.最常见的设计要素是原则和模式.不幸的是,即使正确地运用了原则,并且也恰当地使用了模式,也无法保证能够很好地创建出易于更改的应用程序. OO度量能暴露出应用程序在遵循OO设计原则方面的情况.糟糕的度量值强烈地表明将来可能会遭遇困难:不过,好的度量值也发挥不了太大的作用.一个做法有问题的设计也可能产生出很高的度量值,

《面向对象设计实践指南:Ruby语言描述》—第8章 8.6节小结

8.6 小结 面向对象设计实践指南:Ruby语言描述 组合让你可以将多个小部分结合起来,创建出更复杂的对象,从而让整体所包含的内容比各个部分的总和还要多.组合后的对象往往由简单.离散的实体组成,它们可以轻易地重新排列成新的组合.这些简单的对象易于理解.重用和测试,但因为它们组合成了一个更复杂的整体,所以对更大型应用程序的操作可能并不像理解各个部分一样那么容易. 组合.经典继承和通过模块的行为共享,都是相互独立的代码编排技术.每一个都有不同的利与弊特点.这些差异使它们更适合用于解决各种稍有不同的问

《数据整理实践指南》一导读

前 言 数据整理实践指南本书使用的体例提示 这个图标代表小窍门.建议或一般注解.警告 这个图标代表警示或警告.代码范例的使用本书是帮助你完成工作的.一般说来,你可以在没有我们许可的情况下,在程序和文件里使用本书中的代码,除非你在重复创建代码中极为重要的一部分.比如说,写一段程序要用好几段本书中的代码,不需要经过许可.而销售或发布来自O'Reilly书籍中配套的CD-ROM是需要经过许可的.通过引用本书内容和代码示例回答问题不需经过许可.但将来自本书的大量代码示例合并到你的产品文档时,必须经过许可