惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
H
Heimdal Security Blog
Jina AI
Jina AI
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
AWS News Blog
AWS News Blog
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Hacker News
The Hacker News
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
S
Securelist
P
Privacy International News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
博客园 - 叶小钗
J
Java Code Geeks
V
V2EX
博客园 - Franky
Spread Privacy
Spread Privacy
K
Kaspersky official blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
C
Cybersecurity and Infrastructure Security Agency CISA
C
CERT Recently Published Vulnerability Notes
Latest news
Latest news
NISL@THU
NISL@THU
罗磊的独立博客
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
V
Visual Studio Blog

博客园 - iceboundrock

Introduction to the Reactive Extensions for JavaScript文章集合(收集贴) 美化VS2010在远程桌面/无法启动硬件加速渲染的机器下的字体显示 CCR源码分析-CCR架构 CCR源码分析-分析环境准备 CCR相关的Channel 9视频 DSS简介 也许你还不知道的一些关于App Domain的事 Common UNIX directories 几篇优化.net动态调用性能的文章 安装TFS 2008备注 Windbg点滴 MySQL Connector/Net 5.20安装后无法在VS2008中正常使用的问题 LAMP周边点滴 并发和协调运行时 其它并发方法 与非CCR代码互操作 失败处理 迭代器 任务调度
并行与并发编程学习心得
iceboundrock · 2007-12-23 · via 博客园 - iceboundrock

最近一直在学习并行与并发相关的东西,从用CCR户手册到erlang论文,从Channel 9的视频到MSDN的文章到,略有心得拿出来分享一下:

就像多任务操作系统中一个进程不能直接访问(OK,起码是不能很轻松的访问)另外一个进程的内存

思路

分离异步操作的执行方法和数据提供。一个有意义的程序执行需要两个部分:代码和数据。如果代码得到了数据之后就可以去执行了,能够并行执行的代码中,共享的数据越少越好,共享数据越少,需要锁定的地方就越少,效率提高,出错的可能降低。erlang中甚至要求两个不同的进程之间只能通过消息传递数据。

CCR使用Port来进行消息传递。port是将数据传递给代码的载体。当数据被投递到port中,port会根据元素类型将之和port上绑定的处理函数结合在一起组成一个Task,然后放入DispatcherQueue中等待执行。

并行与并发

并发与并行为啥重要有啥好处就不再多说了。谈谈并发与并行编程中常见的问题和困难吧。

  • 共享内存:传统的处理方式中,往往需要在多个并行的线程中共享数据,这是一个很容易出错的地方。锁的多了性能差,锁的少了更加可能会导致程序运行出现莫名其妙的问题。无论是CCR还是erlang,对这个问题的解决办法都很直接,避免使用共享内存,erlang更加严格,
  • 多个线程之间的同步:并发运行的多个线程之间往往是有关系的
  • 错误处理:如何找到错误的上下文,如何处理多个并发操作中部分成功部分失败的情况,都是

单元测试

单元测试之外的问题