Java核心内库-线程-并行和并发
来源:互联网 发布:手机节拍器软件 编辑:程序博客网 时间:2024/06/05 07:47
Java核心内库-线程-并行和并发
引子:前面讲到程序的运行流程的时候,说程序在没有流程控制前提下,代码都是从上而下逐行执行的
需求:现在需要设计一个程序想要完成边运行游戏边播放歌曲的功能,怎么设计?
并发和并行是即相似又有区别:
并行:指两个或多个事件在同一时刻发生
并发:指两个或多个事件在同一时间段内发生.
在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但是单CPU系统中,每一时刻却仅能有一道程序执行(时间片),故微观上这些程序只能是分时地交替执行.
例若计算机系统中有多个CPU,则这些可以并发执行的程序便可被分配到多个处理器上,实现多任务并行执行,即利用每个处理器来处理一个可并发执行的程序,这样,多个程序便可以同时执行,因为是微观的,所以大家在使用电脑的时候感觉就是多个程序是同时执行的. 所以,大家买电脑的时候喜欢买”核”多的,其原因就是”多核处理器”电脑可以并行的处理多个程序,从而提高了电脑的运行效率
单核处理器的计算机肯定是不能并行的处理多个任务的,只能是多个任务在单个CPU上并发运行.同理,线程也是一样的,从宏观角度上理解线程是并行运行的,但是从微观角度上分析却是串行运行的,即一个线程一个线程的运行,当系统只有一个CPU时,线程会以某种顺序执行多个线程,我们把这种情况称之为线程调度.
时间片即CPU分配给各个程序的时间.
多线程优势:
多线程作为一种多任务,并发的工作方式,当然有其存在的优势:
(1)进程之前不能共享内存,而线程之间享有内存(堆内存)则很简单
(2)系统创建进程时需要为该进行重新分配系统资源,创建线程则代价小很多,因此实现多任务并发线程效率更高
(3)Java语言本身内置多线程功能的支持,而不是单纯的作为底层系统的调度方式,从而简化了多线程编程.
--------
CS游戏/单行道和多行道
-------------------
多线程下载,可以理解为一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道,当服务器提供下载任务时,使用下载的共享宽带,在优先级相同的情况下,总服务器会对总下载线程进行平均分配.不难理解,如果你线程多的话,那下载的越快.现流行的下载软件都支持多线程.
多线程是为了同步完成多项任务,不是为了提供程序运行的效率.而是通过提高资源使用效率来提高系统的效率.所以现在大家买电脑的时候,也应该看看CPU的线程数.
Java操作进程:
在java代码中如何去运行一个进程(简单讲解,获取进程中的数据IO). 方式一:Runtime类的exec方法:
方式二:ProcessBuilder的start方法
- Java核心内库-线程-并行和并发
- Java核心内库-线程-并行和并发
- Java核心内库-线程-理解进程和线程
- Java核心内库-线程-线程通信-wait和notify方法介绍
- 进程和线程、并发和并行
- Java核心内库-线程-线程同步-同步代码块
- Java核心内库-线程-线程同步-同步方法
- 单线程多线程、并行和并发
- Java线程通信和线程并发库
- Java核心内库-线程-多线程的优势
- Java核心内库-线程-创建进程操作
- Java核心内库-线程-使用匿名内部类创建并启动线程
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- Java 多线程编程之一 进程与线程,并发和并行的区别
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- Java多线程--并发和并行的区别
- Java-并发和并行的区别
- Java多线程--并发和并行的区别
- 几个最佳的WordPress SEO插件
- Android动画分类及视图动画简析
- poi实现excel下拉联动
- java中==和equals的区别
- 怎样在Spring官网下载spring低版本的jar包
- Java核心内库-线程-并行和并发
- MVP框架设计详解
- mbed serial_api模块移植到stm32f107vc(基于st32f1 cube1.4.0)
- svm 支持向量机
- u-boot-2016.05移植:(3)、识别NOR FLASH
- Java:String和Date、Timestamp之间的转换
- POI设置单元格内容下拉框选择和单元格提示功能
- C/C++笔记--多态及虚表分析
- php项目,别人无法访问自己电脑上Apache服务器原因