并发与并行计算
文章平均质量分 94
StevenIsSnail
辛苦理所当然。年轻就拼搏。挑战不确定。
展开
-
synchronized/wait/notify 与 mutex/cond wait wake ~ 链表队列 生产消费问题
使用条件变量 + 互斥区 http://blogread.cn/it/article/7248?f=catetitlehttp://baike.baidu.com/link?url=mFxsi1w7pYQI3p-C175_u14hB0fCbYFr4JqPlNpfEZEbn4l1wZLuHuLgsrc__rvA815BnG99hyUoYgq1SGsw5a类比: c++ pthread_mute转载 2016-02-01 19:19:28 · 1134 阅读 · 0 评论 -
c++ 线程并发、任务队列、异步 任务封装和分发 lambda与任务 boost
在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:并发异步缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。1任务队列1.1 以生产者-消费者模型设计任务队列 生产者-消费者模型是人们非常熟悉的模型,比如在某个服务器程序中,当User数据被逻辑模块修改后,就转载 2016-02-01 21:59:26 · 6746 阅读 · 2 评论 -
软件系统结构与开发环境
《软件系统结构与开发环境》 Chapter 2 软件开发平台与软件系统架构 之 JAVAJVM的结构和解释执行代码流程jvm包括J2ee 框架注意RMI协议(远程调用),HTTP扩展的SOAP协议,三层(服务层(EJB),中间层,web层...)Servlet 和 HttpServletRequest, RequestDispatcher(包含其他Servlet或重定向htt转载 2015-01-15 03:18:23 · 1112 阅读 · 0 评论 -
QT 多线程程序设计
QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程类Qt 包含下面一些转载 2015-03-25 00:54:58 · 594 阅读 · 0 评论 -
深入分析Volatile的实现原理
聊聊并发(一)——深入分析Volatile的实现原理作者 方腾飞 发布于 2012年2月21日 | 32 讨论分享到:微博微信FacebookTwitter有道云笔记邮件分享稍后阅读我的阅读清单 引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchroni转载 2014-09-27 09:47:59 · 668 阅读 · 0 评论 -
map容器的有条件性同步(get/put有同步,但逻辑上的同步需要依靠更外部的逻辑),并发(ConcurrentHashMap)
SynchronizedMapPosted on 2006-07-02 19:28 ☆蓝色梦想☆ 阅读(3840) 评论(1) 编辑 收藏 所属分类: J2SE Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMa转载 2014-09-26 23:45:15 · 1719 阅读 · 1 评论 -
java实现同步map的几种方法(lock,synchronized,rwlock,ConcurrentHashMap,hashtable,SynchronizedMap)
Map线程安全几种实现方法如果需要使 Map 线程安全,大致有这么四种方法: 1、使用 synchronized 关键字,代码如下synchronized(anObject) { value = map.get(key);}2、使用 JDK1.5提供的锁(java.util.concurrent.locks.Lock)。代码如下lock.lock转载 2014-09-26 21:47:30 · 3407 阅读 · 1 评论 -
【并发问题】java BlockingQueue、ConcurrentHashMap的详解
原文: http://blog.csdn.net/zlb824/article/details/7091814本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也转载 2014-12-01 01:38:00 · 2124 阅读 · 0 评论 -
【总结】JAVA多线程与并发学习总结分析
http://www.djxz.com/article/40633.htm1.计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据翻译 2015-01-20 11:46:20 · 1187 阅读 · 1 评论 -
顺序性,一致性,原子性:现代多核体系结构与原子操作·CAS与自旋锁·自旋锁与并发编程的原语·语句原子性和编程逻辑的原子性·行锁与数据库事务原子性·binlog与数据库同
顺序性:乱序执行·逻辑正确性现代体系结构的每一个核的指令流水是乱序执行的,但是他能够保证其执行效果等同于顺序执行。一致性:各核及线程缓存·volatile各核缓存及线程缓存不一致是影响并发并行计算正确性的一大问题。如果上层编程逻辑需要使他们可见的值保持一致,则可以引入volatile。原子性:1 多核体系原创 2016-01-28 16:22:26 · 1959 阅读 · 5 评论