`
yaoshanqingling
  • 浏览: 6988 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

黑马程序员-线程

    博客分类:
  • java
阅读更多

----------------------- android培训java培训、期待与您交流! ----------------------

   在线程的概念之前,我们必须知道什么是进程。这两个概念仅仅只有一字之差,但代表的是两个完全不同的概念

进程:

在讲进程之前,先介绍什么是程序。程序是计算机指令的集合,它以文件形式存储在磁盘上,而进程就是一个执行中的程序,而每一个进程都有其独立的内存空间和系统资源。进程就是一个运行的程序,Windows 操作系统是支持多进程的操作系统,即同一时间可以执行多个程序,每个程序是在自己独立的内存空间内,使用自己被分配到的系统资源。其实,这种说法并不准确,一个 CPU 在某个时刻,实际上只能运行一个程序,即一个进程。所谓的支持多进程,其实就是 CPU 在交替轮流执行多个程序,例如,利用 Windows 操作系统可以一边听歌曲、一边上网等等。

线程:

线程是运行程序(进程)中单个顺序的小程序,一个进程可以由多个线程组成,而这多个线程共享同一个存储间这使得线程间的通信比较容易。在一个多进程的程序中,如果要切换到另一个进程,需要改变地址空间的位置。然而在多线程的程序中,就不会出现这种情况,因为他们位于同一个内存空间内,只需改变运行的顺可。 多线程指单个程序可通过同时运行多个不同线程,以执行不同任务。所谓同时,也要依据 CPU。如果是多个 CPU,则并发运行,如是一个 CPU,则根据系统具体情况,执行多个线程。

 

创建线程的方法一般有两种:

一种是通过实现 Runnable 接口的方式创建线程。

一种是通过从 Thread 类中去继承来创建线程。

1.通过 Runnable 接口的方式创建线程

在 Java 中,线程是一种对象,但不是所有的对象都可以称为线程,只有实现了 Runnable

接口的类,才可以称为线程。下面先看看 Runnable 接口的定义。

<!--EndFragment-->

 

Public interface Runnable

{

public abstract void run();

}

Runnable 接口只有一个抽象方法“run()”,要实现这个接口,只要实现这个抽象方法

就可以。只要实现了这个接口的类,才有资格称为线程。创建线程的结构:

Thread t=new Thread(runnable 对象);

 Runnable 对象是指实现了 Runnable 接口类的对象。当线程执行时,Runnable 对象中的

“run()”方法会被调用,如果想要运行上面创建的线程,还需要调用一个 Thread 类的方法。

 

2.通过继承 Thread 类来创建线程

其实 Thread 类本身也实现了 Runnable 接口,所以只要让一个类能够继承 Thread 类,并

----------------------- android培训java培训、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

分享到:
评论

相关推荐

    黑马程序员-Qt讲义.pdf

    Qt提供了多线程编程的支持,包括线程的基本概念介绍、多线程的使用方法和线程安全绘图等。在数据库操作方面,Qt也提供了强大的支持,包括数据库操作的基本概念、使用模型操作数据库和对数据库数据的可视化显示等。 ...

    黑马程序员-java多线程技术01

    本教程将聚焦于Java中的多线程技术,以“黑马程序员-java多线程技术01”为学习起点,探讨如何在Java中实现并管理线程。 首先,我们来理解什么是线程。线程是操作系统分配CPU时间的基本单元,一个进程中可以有多个...

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、递归 day09_字节流、字符流 day10_缓冲流、转换流、序列化流、Files day11_网络编程 day12_函数式接口 day13_Stream...

    黑马程序员-tomcat集群部署文档资料

    总结,"黑马程序员-tomcat集群部署文档资料"涵盖的范围广泛,从基础的集群概念和原理,到具体的Tomcat集群配置和优化,再到高级的源码分析,对于希望提升服务器管理和运维能力的IT从业者来说是一份宝贵的参考资料。...

    黑马程序员--银行管理系统

    4.客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。各类型客户在其...

    黑马程序员-C#坦克大战

    这款游戏的开发涉及到多个IT领域的知识,包括图形用户界面设计、游戏逻辑编程、碰撞检测、多线程处理以及对象导向编程等。 首先,C#是一种强大的面向对象的编程语言,由微软公司开发,用于构建Windows平台上的应用...

    多线程高新(黑马程序员)

    本文将深入探讨“多线程高新”这一主题,结合黑马程序员的课程内容,来阐述多线程的核心概念、优势、实现方式以及在实际应用中的注意事项。 首先,多线程是指在一个进程中同时执行多个线程,这些线程可以共享同一...

    黑马程序员Javase笔记

    "黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...

    B站黑马程序员Python教程学习笔记.zip

    在B站黑马程序员的Python教程中,你将深入理解Python的基础概念,包括: 1. **变量与数据类型**:Python支持多种数据类型,如整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。此外,还有列表(list...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员2018python爬虫课件完整版

    黑马程序员作为知名的IT教育机构,其2018年的Python爬虫课程旨在教授学员如何有效地抓取和处理网络上的信息。在这个完整的课程中,你将深入理解Python爬虫的基本原理,并学习到一系列实用的技巧。 首先,Python之...

    黑马程序员入学面试题

    - **进程与线程**:进程是操作系统资源分配的基本单位,而线程是CPU调度的基本单位,一个进程中可以有多个线程。 #### 20. 局部变量和成员变量区别 - **局部变量**:在方法、构造器或语句块中声明的变量,其作用域...

    黑马程序员java贪吃蛇源码

    《黑马程序员Java贪吃蛇源码解析》 贪吃蛇是一款经典的计算机游戏,它简单易懂,却又富有挑战性,是许多程序员初次接触编程时的启蒙之作。在Java编程领域,贪吃蛇同样是一个很好的实践项目,能帮助初学者理解和掌握...

    黑马程序员–Java多线程讲解笔记

    Java多线程是Java编程中不可或缺的部分,它允许程序同时执行多个任务,提高了程序的效率和响应速度。本文主要探讨了多线程的概念、应用场景...因此,理解和掌握Java的多线程技术对于任何Java程序员来说都是至关重要的。

    传智播客.黑马程序员《Java 基础入门》课后习题答案

    1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java ...

    黑马程序员安卓 笔记代码(包含源码) 第76期

    【标题】"黑马程序员安卓 笔记代码(包含源码) 第76期" 提供的是安卓开发的相关学习资料,其中包含了源码,这通常意味着我们可以深入理解代码的实现细节和设计思路。作为第76期,这可能是一个长期系列教程的一部分...

    黑马Qt讲义文件

    文档可能还会涵盖线程管理和异步操作,这对于构建高性能、多任务的应用至关重要。 "Wxpay_NATIVE_checkout.zip"可能是一个关于微信支付(WxPay)原生SDK集成的示例或教程。在Qt中集成支付接口,可以帮助开发者将...

    中关村黑马程序员训练营android-4.0视频下载地址

    根据提供的信息,我们可以总结出以下关于“中关村黑马程序员训练营Android-4.0视频”的相关知识点: ### 一、概述 “中关村黑马程序员训练营Android-4.0视频”是一套针对Android开发初学者和进阶学习者的培训课程...

    黑马程序员Android学习笔记

    《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...

Global site tag (gtag.js) - Google Analytics