并发
文章平均质量分 77
iteye_8039
这个作者很懒,什么都没留下…
展开
-
Java 并发性和多线程介绍
在过去单 CPU 时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。随着多任务对软件开发者带来的新挑战,程序不在能假设独占所有的 CPU 时间、所有的内存和其他计算机...原创 2016-05-23 13:25:53 · 119 阅读 · 0 评论 -
Java并发的四种风味:Thread、Executor、ForkJoin和Actor
我们生活在一个事情并行发生的世界。自然地,我们编写的程序也反映了这个特点,它们可以并发的执行。当然除了Python代码(译者注:链接里面讲述了Python的全局解释器锁,解释了原因),不过你仍然可以使用Jython在JVM上运行你的程序,来利用多处理器电脑的强大能力。然而,并发程序的复杂程度远远超出了人类大脑的处理能力。相比较而言,我们简直弱爆了:我们生来就不是为了思考多线程程序、评估并发访...原创 2015-01-19 20:25:18 · 65 阅读 · 0 评论 -
Java类锁和对象锁实践
类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明。一、相关约定为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定:1. 类锁:在代码中的方法上加了static和synchronized的锁,或者synchronized(xxx.class)的代码段,如下文中的increament();2.对象锁:在代码中的方法上加了synchronized的锁,或者s...原创 2015-01-19 19:41:56 · 82 阅读 · 0 评论 -
java处理高并发高负载类网站的优化方法
java处理高并发高负载类网站的优化方法http://www.ablanxue.com/prone_1020_1.html原创 2017-03-23 10:36:07 · 258 阅读 · 0 评论 -
深入研究Servlet线程安全性问题
引自:http://www.yesky.com/334/1951334.shtml 摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。 Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。...原创 2016-06-05 16:22:45 · 121 阅读 · 0 评论 -
springMVC一个Controller处理所有用户请求的并发问题
springMVC一个Controller处理所有用户请求的并发问题有状态和无状态的对象基本概念: 有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的。一般是prototype scope。无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类,是线程安全的。一般是singleton scope。如...原创 2016-06-05 16:20:08 · 4965 阅读 · 0 评论 -
阿姆达尔定律
阿姆达尔定律阿姆达尔定律可以用来计算处理器平行运算之后效率提升的能力。阿姆达尔定律因 Gene Amdal 在 1967 年提出这个定律而得名。绝大多数使用并行或并发系统的开发者有一种并发或并行可能会带来提速的感觉,甚至不知道阿姆达尔定律。不管怎样,了解阿姆达尔定律还是有用的。我会首先以算术的方式介绍阿姆达尔定律定律,然后再用图表演示一下。阿姆达尔定律定义一个程序(或者一个...原创 2016-05-26 21:25:06 · 213 阅读 · 0 评论 -
Slipped Conditions
Slipped Conditions所谓 Slipped conditions,就是说, 从一个线程检查某一特定条件到该线程操作此条件期间,这个条件已经被其它线程改变,导致第一个线程在该条件上执行了错误的操作。这里有一个简单的例子:public class Lock { private boolean isLocked = true; public void l...原创 2016-05-25 17:09:07 · 79 阅读 · 0 评论 -
剖析同步器
剖析同步器虽然许多同步器(如锁,信号量,阻塞队列等)功能上各不相同,但它们的内部设计上却差别不大。换句话说,它们内部的的基础部分是相同(或相似)的。了解这些基础部件能在设计同步器的时候给我们大大的帮助。这就是本文要细说的内容。注:本文的内容是哥本哈根信息技术大学一个由 Jakob Jenkov,Toke Johansen 和 Lars Bjørn 参与的 M.Sc.学生项目的部分成果。...原创 2016-05-25 17:08:24 · 114 阅读 · 0 评论 -
java多线程与并发之java并发编程实践--系列
java多线程与并发之java并发编程实践http://blog.csdn.net/fhd001/article/category/886410/1原创 2016-05-25 17:06:43 · 86 阅读 · 0 评论 -
阻塞队列+线程池
阻塞队列阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列,下图展示了如何通过阻塞...原创 2016-05-25 17:06:12 · 148 阅读 · 0 评论 -
信号量
信号量Semaphore(信号量)是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失(译者注:下文会具体介绍),或者像锁一样用于保护一个关键区域。自从 5.0 开始,jdk 在 java.util.concurrent 包里提供了 Semaphore 的官方实现,因此大家不需要自己去实现 Semaphore。但是还是很有必要去熟悉如何使用 Semaphore 及其背后的原理本文...原创 2016-05-23 14:13:00 · 76 阅读 · 0 评论 -
线程通信
线程通信线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程 B 可以等待线程 A 的一个信号,这个信号会通知线程 B 数据已经准备好了。本文将讲解以下几个 JAVA 线程间通信的主题:通过共享对象通信忙等待wait(),notify()和 notifyAll()丢失的信号假唤醒多线程等待相同信号不要对常量字符...原创 2016-05-23 14:11:25 · 120 阅读 · 0 评论 -
线程同步、锁
Java 同步块Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java 同步块用来避免竞争。本文介绍以下内容:Java 同步关键字(synchronzied)实例方法同步静态方法同步实例方法中同步块静态方法中同步块Java 同步示例Java 同步关键字(synchronized)Jav...原创 2016-05-23 13:58:51 · 83 阅读 · 0 评论 -
如何创建并运行 java 线程
如何创建并运行 java 线程Java 线程类也是一个 object 类,它的实例都继承自 java.lang.Thread 或其子类。 可以用如下方式用 java 中创建一个线程:Tread thread = new Thread();执行该线程可以调用该线程的 start()方法:thread.start();在上面的例子中,我们并没有为线程编写运行代码,因此调用该方...原创 2016-05-23 13:52:13 · 83 阅读 · 0 评论 -
Java中快如闪电的线程间通讯
这个故事源自一个很简单的想法:创建一个对开发人员友好的、简单轻量的线程间通讯框架,完全不用锁、同步器、信号量、等待和通知,在Java里开发一个轻量、无锁的线程内通讯框架;并且也没有队列、消息、事件或任何其他并发专用的术语或工具。只用普通的老式Java接口实现POJO的通讯。它可能跟Akka的类型化actor类似,但作为一个必须超级轻量,并且要针对单台多核计算机进行优化的新框架,那个可能有...原创 2015-01-19 21:30:41 · 88 阅读 · 0 评论