并发编程的理解(一)

本篇文章主要是了解并发编程的基本模型。

平时,我们开发并发系统的时候,我们都会有一个基本的并发模型,而并发模型说的就是系统中的线程如何协作完成并发任务。

不同的并发模型以不同的方式拆分任务,同时,线程可以以不同的方式进行通信和协作。

并发模型和分布式系统相似性

并发模型其实和分布式系统非常相似,在并发模型中,线程是执行并发操作的基本单元,而分布式系统中,进程是执行分布式任务的基本单元。然而本质上,进程和线程从操作系统角度来看,两者的功能又是十分的相似。所以,从两者的基本构成来看,分布式和并发模型的理念是一样的。

虽然,在实际应用中,分布式所遇到的问题通常会比并发的问题要多的多的,比如进程通信,网络异常、远程主机是否实时在线等问题,而并发系统中可能会遇到硬盘问题、CPU故障等问题。

所以,我们不难看出,并发模型和分布式模型之间的相似点,例如,用线程分配的模型就类似于分布式系统的负载均衡思想。

并发模型之状态(共享、独享)

并发模型设计中,其中最为重要的就是线程是否应该共享,是否具备共享或者独享的状态。

其实并发模型中的状态的背后,是对资源占用,自然而然,线程的状态也就成为了共享数据的一部分。而一旦谈到共享,我们就要做到尽量避免因共享而出现的竞态条件和死锁等问题。

线程共享

而另外一个独立(独享)状态表明状态不会在多个线程之间共享,如果处在独立状态的线程之间要通信,他们可以访问一个不可变的对象来实现,这是一种最有效的避免并发的问题。

独立状态

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值