博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的并发和多处理器的并行的理解
阅读量:4562 次
发布时间:2019-06-08

本文共 581 字,大约阅读时间需要 1 分钟。

在计算机编程中,有一个基本概念,就是在同一时刻处理多个任务的思想。

许多程序设计,需要程序能停下正在做的工作,转而处理其他问题,然后返回主进程。

 

首先,我们先理清一下并行和并发的关系:

并行是指,同一时刻处理多个任务,并发是指多个可独立运行的任务,彼此在某一段时间内独立有序运行。

 

实现:

最初,程序员们用所掌握的有关机器底层的知识来编写中断服务程序,主进程的挂起是通过硬件中断来触发的,但难度太大,而且不能移植。中断对于时间性强的任务是必须的,但对于大量的其他问题,我们只是想把问题切分成多个可独立运行的部分(任务),从而提高程序的响应能力。在程序中,这些彼此独立运行的部分称之为线程。

 

通常,线程只是一种为单一处理器分配执行时间的手段,但是,如果操作系统支持多处理器,

那么每一个任务都可以被指派给不同的处理器,并且它们是真正的并行执行(而不是某一时间段内)

 

在语言级别上,多线程所带来的便利,便是程序员不用操心机器上是多个处理器还是一个处理器,

由于程序在逻辑上被分为线程,所以如果机器有多个处理器,那么不需要特殊调整程序就能执行的更快。

 

并发的隐患:共享资源

多个并行任务都要访问同一个资源的时候,为某个任务锁定资源,完成后,释放资源,供其他任务使用。

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/hoanfir/p/9258921.html

你可能感兴趣的文章
2018大都会赛 A Fruit Ninja【随机数】
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
小公司的一年,一起看看小公司的前端可以怎么做
查看>>
oracle数据批处理
查看>>
Json网络解析
查看>>
[转]Google Chrome/IE/FireFox查看HTTP请求头request header响应头
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
第十四周Java学习总结
查看>>
税率等级
查看>>
__alloc_pages
查看>>
web service 使用多态(转载)
查看>>
23醒
查看>>
Google Hack的一些整理
查看>>
[贪心] JZOJ P3757 随机生成器
查看>>
Codeforces Round #370 (Div. 2)(简单逻辑,比较水)
查看>>