文档章节

基础补充-多线程-理论篇

skanda
 skanda
发布于 2016/11/13 22:05
字数 634
阅读 8
收藏 1

多线程 理论篇

多线程则扩展了多进程的概念,使得同一个进行可以同时并发处理多个任务。线程(Thread)也被称作轻量级进程(Ligheweight Process),线程是进程的执行单元。就象进程在操作系统中的地位一样,线程在程序中是独立的、并发的执行流。当进程被初始化后,主线程就被创建了。对于绝大多数的应用程序来说,通常仅要求有一个主线程,但我们也可以在该进程内创建多条顺序执行流,这些顺序执行流就是线程,每条线程也是互相独立的。
线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不再拥有系统资源,它与父进程的其它线程共享该进程所拥有的全部资源。因为多个线程共享父进程里的全部资源,因此编程更加方便;但必须更加小心,我们必须确保线程不会妨碍同一进程里的其它线程。
线程可以完成一定的任务,可与其他线程共享父进程中的共享变量及部分环境、相互之间协同来完成进程所要完成的任务。
简而言之:一个程序运行后至少有一个进程,一个进程里可以包含多个线程,但至少包含一个线程。
 

•采用实现Runnable接口方式的多线程:

–线程类只是实现了Runnable接口,还可以可以继承其他类。

–在这种方式下,可以多个线程共享同一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU,代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。

–劣势是:编程稍稍复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。

•采用继承Thread类方式的多线程:

–劣势是:因为线程类已经继承了Thread类,所以不能再继承其他父类。

–优势是:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this即可获得当前线程。

 

 

© 著作权归作者所有

上一篇: 多线程-线程控制
下一篇: 基础补充-算法
skanda
粉丝 11
博文 104
码字总数 59811
作品 0
厦门
私信 提问
JAVA多线程-基础篇-目录

刚忙完双十一,本系列内容也恰好告一段落,总共分为11个章节,希望对大家有所帮助 JAVA多线程01-基础篇-基本概念 JAVA多线程02-基础篇-线程创建方式 JAVA多线程03-基础篇-线程运行 JAVA多线程...

x_coder
2017/11/14
0
0
强力推荐,非常全的 Python 学习资料(今日免费)

各位想高效学习和掌握Python的朋友,请看过来。好了在给大家分享之前呢,我介绍一下我弄的一个学习交流群,有什么不懂的问题,都可以在群里踊跃发言,需要啥资料随时在群文件里面获取自己想要...

python达人
2017/11/17
0
0
C#多线程编程系列(一)- 简介

目录 一、前言 二、目录结构 四、章节结构 五、相关链接 一、前言 在C#学习过程中,多线程一直都是比较难的部分,因为其中涉及到很多与操作系统相关的知识。比如:如何进行多线程编程、线程同...

InCerry
2018/07/31
0
0
Java 多线程系列目录(共43篇)

Java多线程系列目录(共43篇) 最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 01. Java多线程系列--“基础篇”01之 基本概念 02. Java多线程系列--“基础篇”02之 ...

foxeye
2016/02/29
106
0
C# WinForm开发系列 - Thread/Delegate/Event

C#是一门支持多线程的语言,因此线程的使用也是比较常见的。由于线程的知识在Win32编程的时候已经说得过多,所以在.Net中很少介绍这部分(可能.Net不觉得这部分是它所特有的)。那我们为什么...

长征2号
2017/10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《精进》的读后感作文2600字

《精进》的读后感作文2600字: 首先,我想先分享我读这本书的过程,我是一名大一的学生,在我高考完的暑假,有一次一位知乎用户的朋友推荐了这本书。当时我看了这本书的封面,有一句话非常的...

原创小博客
29分钟前
2
0
亿万pv的混合云规划实施

基础服务: keepalive,lvs,nginx,dns,ntp,redis集群,yum仓库,web资源 网络高可用 防火墙冗余,交换机堆叠 专线互联 物理机虚拟化 VMware vcenter/ Proxmox...

以谁为师
50分钟前
4
0
聊聊dubbo的LRUCache

序 本文主要研究一下dubbo的LRUCache LRUCache dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/utils/LRUCache.java public class LRUCache<K, V> extends LinkedHashMap<......

go4it
52分钟前
1
0
前端知识点总结——H5

前端知识点总结——H5 1.html5新特性 (1)新的语义标签 (2)增强型表单* (3)音频和视频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖动API (8)Web Worker (9)Web Storage (10)Web Socket 2.增强...

智云编程
55分钟前
0
0
微服务之架构技术选型与设计

本文主要介绍了架构技术选型与设计-微服务选型,Spring cloud 实现采用的技术,希望对您的学习有所帮助。 架构技术选型与设计-DUBBODubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿...

别打我会飞
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部