对于多线程概念的理解

昨天晚上兴致大好,故又捧起java书,随意的翻动了几页。

多线程的概念之前总觉得晦涩难懂,昨天看到讲它的章节,却忽然理解了一些。

多线程,其实是多,线程的组合。线程,线性的程序。线性,上过学的大家想必都不难理解其概念。我理解为单向性(当然有方向)。故多线程可以理解为多个单向性程序。结合现实生活,就可以理解为一件不可拆分的事情。

多线程的出现就是为了解决同时干多件事的情况。那它的工作原理是什么呢?

比如你想同时看三本书,先看第一本的第一章,再去看第二本的第一章,再去看第三本的第一章,然后再回去看第一本的第二章……多线程的工作原理大概就是这样,只不过每个线程占用CPU的时间较短,看起来像同时进行的一样。

那线程和进程的关系又是怎样的呢?那什么又是进程呢?

进程是操作系统的最小单元,可以简单的理解为原子是物质最小的组成单位一样(其实原子也是可再分的)。进程,进行中的程序。例如你的电脑上正在运行一个音乐播放器的进程,音乐播放器可以一边播放声音,一边显示歌词,一边播放画面,其实这就是一个一个的线程。所以,一个进程可以包含多个线程,或者说一个线程被分配一个进程时间段。

时间: 2024-11-09 01:00:43

对于多线程概念的理解的相关文章

线程与进程的区别以及对多线程并发的理解

转自: http://blog.sina.com.cn/s/blog_12f5264ff0102v8eq.html http://blog.csdn.net/suxinpingtao51/article/details/8113509 http://blog.csdn.net/cqkxboy168/article/details/9026205/ 一.线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程.

Java多线程概念简介 多线程中篇(一)

Java的线程与操作系统的线程 在线程的相关介绍中,有讲到“线程的实现”分为三种:内核支持,用户级以及两者混合.(这只是一种简要的分类) Java线程在JDK1.2之前,是用户线程实现的 而在JDK1.2中,线程模型变为基于操作系统原生线程模型来实现的 所以说Java虚拟机中线程的映射实现,是受制于操作系统的,操作系统支持怎样的线程模型,决定了Java虚拟机中线程的样子. 虚拟机规范中也并未限定Java线程需要使用哪种线程模型来实现. 线程模型只对线程的并发规模和操作成本产生影响,对Java程序

关于”机器学习:概念与理解“系列

"机器学习:概念到理解"系列,我本着开放与共享(open and share)的精神撰写,目的是让更多的人了解机器学习的概念,理解其原理,学会应用.现在网上各种技术类文章很多,不乏大牛的精辟见解,但也有很多滥竽充数.误导读者的.这个系列对教课书籍和网络资源进行汇总.理解与整理,力求一击中的,通俗易懂.机器学习很难,是因为她有很扎实的理论基础,复杂的公式推导:机器学习也很简单,是因为对她不甚了解的人也可以轻易使用.我希望好好地梳理一些基础方法模型,输出一些真正有长期参考价值的内容,让更多

机器学习:概念与理解(二):回归、稀疏与正则约束 ridge regression,Lasso

"机器学习:概念与理解"系列,我本着开放与共享(open and share)的精神撰写,目的是让更多的人了解机器学习的概念,理解其原理,学会应用.现在网上各种技术类文章很多,不乏大牛的精辟见解,但也有很多滥竽充数.误导读者的.这个系列对教课书籍和网络资源进行汇总.理解与整理,力求一击中的,通俗易懂.机器学习很难,是因为她有很扎实的理论基础,复杂的公式推导:机器学习也很简单,是因为对她不甚了解的人也可以轻易使用.我希望好好地梳理一些基础方法模型,输出一些真正有长期参考价值的内容,让更多

JAVA中用堆和栈的概念来理解equals() "=="和hashcode()

在学习java基本数据类型和复杂数据类型的时候,特别是equals()"=="和hashcode()部分时,不是很懂,也停留了很长时间,最后终于有点眉目了. 要理解equals()"=="和hashcode(),最好先了解Java内存中堆和栈的知识: 下面一段是参考自http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html 大家也可点进去查看更详细的解释. Java 中的堆和栈  Java把内存划分成两种

“封装”概念 的理解(2013-08-27 16:22:16)

在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别: 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体, 也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员. 将数据与对数据的操作 在一个结构体内实现,使用时仅需要调用接口即可. "封装"概念 的理解(2013-08-27 16:22:16),布布扣,bubuko.com

C语言(四)指针概念的理解

转载请标明出处: http://blog.csdn.net/u011974987/article/details/52270018: 前言 最近真的是忙的不可开交,公司一直给安排任务,连学习和写笔记的时间都没有了,落下好几次课的笔记都没有写,所以我抽空把目前的进度给追上来,不然会越落越多.加油吧~(感觉身体都要被掏空了) 指针 我们通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的.所以,学习指针是很有必要的. 正如您所知道的,每一个变量都有一个内存位

架构漫谈(二):认识概念是理解架构的基础

在前一篇文章中,我们讨论了什么是架构.事实上,这些基础概念对于做架构是非常重要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识.比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回答千奇百怪.这实际上就导致了做架构的时候,不同角色的沟通会出很多问题,那么结果也就可想而知了. 如前一篇所说,架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要.这篇文章尝试讨论一下,如何去认识概念.当然这篇不是语言学的文章,我

iOS开发中GCD在多线程方面的理解

GCD为Grand Central Dispatch的缩写. Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法.在Mac OS X 10.6雪豹中首次推出,并在最近引入到了iOS4.0. GCD是一个替代诸如NSThread等技术的很高效和强大的技术.GCD完全可以处理诸如数据锁定和资源泄漏等复杂的异步编程问题. GCD可以完成很多事情,但是这里仅关注在iOS应用中实现多线程所需的一些基础知识. 在开始之前,需要理解是要提供给GCD队列的是代