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

推荐订阅源

博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
T
Tailwind CSS Blog
Webroot Blog
Webroot Blog
S
Secure Thoughts
N
News and Events Feed by Topic
月光博客
月光博客
TaoSecurity Blog
TaoSecurity Blog
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
N
News | PayPal Newsroom
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Privacy & Cybersecurity Law Blog
GbyAI
GbyAI
K
Kaspersky official blog
WordPress大学
WordPress大学
P
Proofpoint News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
W
WeLiveSecurity
Jina AI
Jina AI
The Cloudflare Blog
Project Zero
Project Zero
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
L
LangChain Blog
Forbes - Security
Forbes - Security
PCI Perspectives
PCI Perspectives
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
博客园 - 【当耐特】
H
Heimdal Security Blog
A
About on SuperTechFans
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
L
LINUX DO - 最新话题
L
Lohrmann on Cybersecurity
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
Intezer
Martin Fowler
Martin Fowler
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

博客园 - 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更加严格,
  • 多个线程之间的同步:并发运行的多个线程之间往往是有关系的
  • 错误处理:如何找到错误的上下文,如何处理多个并发操作中部分成功部分失败的情况,都是

单元测试

单元测试之外的问题