`
yxwang0615
  • 浏览: 562126 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

多线程笔记(一)

    博客分类:
  • java
阅读更多

概念理解:

拿操作系统举例,所有的操作系统都支持多线程,所有运行的任务中包含一条进程(process),当一个程序进入内存中,即变成一个进程。

 

进程的特点:

1.独立性:进程是系统中独立存在的实体,它可以有自己独立的资源,每个进程都有自己私有的地址空间。

2.动态性:进程与程序的区别在于,程序只是一个静态指令的集合,而进程是一个正在系统中活动的指令集合。进程有自己的生命周期和各种不同的状态,这些概念程序不具备。

3.并发性:多个程序可以再耽搁处理器上并发执行,多个进程之间不会互相影响,

并发是指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上有多个进程同时执行的结果。

 

一个CPU在同一时间只能运行一个进程,CPU不断在很多进程之间轮换,轮换速度很快,我们很难发现任何中断现象,感觉就是多个程序在同时执行。

 

多进程扩展了多进程的感念,使得同一个进程可以并发处理多个任务。线程Thread也被称为轻量级进程,线程是进程的一个执行单元线程在程序中是独立的、并发的执行流。

 当进程被初始化之后,主线程就被创建了。多大部分的应用程序,一个主线程就够了。

我们可以在进程中创建多条顺序执行流,这些顺序执行流就是线程,每条线程也是相互独立的。反过来,一个线程必须要有一个父进程。线程可以拥有自己的堆栈、自己的程序计数器、自己的变量,但不在拥有系统资源(它与父进程的其他线程共享该进程的所有资源)。

线程是独立运行的,它并不知道进程中是否有其他线程存在。线程的执行是抢占式的,当前运行的线程在任何时候都有可能被挂起,以便另外一个线程可以执行。  一个线程可以创建和撤销另外一个线程,同一个进程之间的多个线程可以并发。

 

多线程的优势

1. 进程间不能共享内存,但线程间共享内存非常容易。

2. 系统创建进程需要为该进程重新分配系统资源,但创建线程则代价小得多,因此使用多线程来实现任务并发比多进程的效率高。

3. java语言内置多线程支持,而不是但村的作为底层操作的调度方式,从而简化了java的多线程编程。

 

 

分享到:
评论

相关推荐

    马士兵多线程笔记.zip

    以下是对马士兵多线程笔记的详细解析。 1. **多线程基础**:多线程是指一个应用程序中同时执行多个线程(即任务)的能力。这种并发执行可以提高系统资源的利用率,提升程序的响应速度和执行效率,特别是在多核...

    Java多线程笔记

    Java多线程笔记 Java多线程笔记是 Java 编程语言中关于多线程编程的笔记,涵盖了线程基础知识、线程优先级、线程状态、守护线程、构造线程、线程中断等多方面的内容。 获取简单 main 程序中的线程 在 Java 中,...

    java多线程笔记

    Java线程的知识点总结。doc

    多线程学习笔记

    多线程学习笔记 iOS开发中,多线程是一种常见的技术手段,用于优化应用程序的性能,提升用户体验。多线程的核心是让程序能够并发地执行多个任务,合理地利用设备的计算能力,尤其是在拥有多个核心的处理器上。 ...

    马士兵多线程训练营笔记

    马士兵是一位知名的IT教育专家,他的多线程训练营笔记深入浅出地讲解了这一主题,帮助开发者理解并掌握多线程的精髓。 多线程允许一个程序中有多个执行流同时运行,这样可以提高应用程序的效率和响应性。在Java中,...

    JAVA 多线程学习笔记

    这篇学习笔记将深入探讨Java多线程的核心概念、实现方式以及相关工具的使用。 一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,...

    多线程笔记.md

    多线程笔记

    C# 多线程笔记和示例讲解

    以下是对"C#多线程笔记"中可能包含的知识点的详细解释。 1. **线程基础**: - **什么是线程**:线程是程序执行的最小单元,每个进程至少有一个线程,负责执行程序代码。 - **主线程与子线程**:主线程是程序的...

    java多线程笔记全手打

    通过阅读`多线程笔记.doc`和运行`threadDemo`示例代码,你可以对Java多线程有更深入的理解,并能够在实际项目中灵活运用这些知识,解决并发问题。同时,博客地址提供了更多详细内容,可以帮助你进一步探索和实践。

    张孝祥Java多线程与并发库高级应用笔记

    ### 张孝祥Java多线程与并发库高级应用笔记概览 #### 一、Java多线程技术的重要性与挑战 Java线程技术是软件工程领域不可或缺的一部分,尤其在底层编程、Android应用开发以及游戏开发中,其重要性不言而喻。然而,...

    多线程笔记

    线程之间的资源共享是多线程编程中的一个重要概念。在Java中,线程之间可以通过共享成员变量进行通信。 ```java class SharedData { int value; } class DataSharingThread extends Thread { private SharedData...

    C#多线程笔记

    ### C#多线程知识点详解 #### 一、线程与窗体间的交互 在C#编程中,每个窗体通常都运行在一个独立的线程上。这意味着如果一个应用程序包含多个窗体,那么这些窗体将分别运行在各自的线程之上。当需要实现不同窗体...

    Java多线程详解(超详细)_狂神说笔记完整版_项目代码_适合小白随课程学习

    在Java编程中,多线程是一种重要的技术,它使得程序能够同时执行多个任务,提高系统的效率和响应性。本教程将详细讲解Java中的多线程概念,包括线程的创建、状态、同步以及高级主题,旨在帮助初学者逐步掌握这一关键...

    Python3 多线程笔记

    ### Python3多线程知识点详解 #### 一、线程基础 **线程状态** 在探讨Python3中的多线程之前,我们首先需要理解线程的基本状态及其转换过程。 - **新建**: 当一个线程被创建后,它最初处于新建状态。 - **就绪**...

    java多线程笔记分享

    java多线程笔记分享

    多线程笔记.docx

    Java多线程是Java编程中不可或缺的部分,它允许程序同时执行多个任务,从而提升程序的效率和CPU的利用率。在Java中,线程是程序执行的最小单位,而进程则是资源分配的基本单位。一个进程可以包含一个或多个线程,...

    java学习笔记2(多线程)

    java学习笔记2(多线程)java学习笔记2(多线程)

    多线程程序设计——笔记

    多线程程序设计笔记 多线程程序设计是计算机科学中的一门重要技术,旨在提高程序的执行效率和响应速度。多线程程序设计学习笔记,内容详尽、实用,本笔记中将详细介绍多线程程序设计的基本概念、线程的创建和管理、...

    C#多线程笔记学习指南

    本篇笔记将深入探讨C#多线程的基本概念、操作方法以及注意事项。 首先,我们要理解多线程的基本概念。线程是程序执行的最小单位,每个线程都有自己的执行路径和栈空间,但它们共享同一块堆内存。因此,线程间的通信...

Global site tag (gtag.js) - Google Analytics