并发编程沉思录

任务、资源、依赖、一致性、管理

 

In computer science, concurrency refers to the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome.

 

多任务基于共享的资源同时执行,输出一致的结果。

 

1、并发编程是面向task和事务的编程;

2、并发编程的核心是协调资源:计算、内存、io

3、并发编程模型;

4、并发编程的目标是保证结果的一致性和提高利率;

 

并发编程世界观:

任务:可分解吗?流水线吗?组装吗?货物拉取型?

资源:任务有基于自愿的相互依赖吗?

任务和资源决定模型;

 

 

并发编程的核心要素:任务、资源、(状态)结果

在此基础上衍生出:

任务的管理工具:线程池、actor、gcd、group等;

资源的管理工具:锁、mvcc等;

状态的管理工具:线程间通信、同步工具等;

 

并发编程实际上是一个运行时复杂系统的管理工具。

 

任务的整体性(协调)、任务的可分割性;

任务的状态;

 

资源:读写资源、排他资源、计数资源;

 

 

一致性:

资源状态的一致性;

计算结果的一致性;

 

并发编程是对并发计算的管理;

 

任务(整体与部分)、资源、状态(结果)、

分工、竞争、协作;

模型、同步工具、同步工具;

线程、锁、

 

posted @ 2020-01-07 15:41  zzfx  阅读(143)  评论(0编辑  收藏  举报