随笔分类 -  Java并发

参考书籍:Think in Java
摘要:synchronized关键字主要用于对普通方法,静态方法和代码块 synchronized用于代码块 虽然线程1和线程2都进入了对应的方法开始执行,但是线程2在进入同步块之前,需要等待线程1中同步块执行完成。 对以下代码反编译 得到 每个对象有一个监视器锁(monitor)。synchronize 阅读全文
posted @ 2017-05-17 14:49 且听风吟-wuchao 阅读(498) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes. A C 阅读全文
posted @ 2016-10-23 21:43 且听风吟-wuchao 阅读(354) 评论(0) 推荐(0) 编辑
摘要:前面提到,当我们用多线程同时运行多个任务时,可以通过锁(互斥)来同步两个任务的行为,从而使得一个任务不会干涉另一个任务的资源。 这一章要解决的问题不是彼此间的干涉,而是彼此间的协作。协作时,关键问题是握手。为了实现握手,我们同样使用互斥,因为互斥能够确保只有一个任务可以相应某个信号,这样就可以根除竞 阅读全文
posted @ 2016-10-22 17:26 且听风吟-wuchao 阅读(335) 评论(0) 推荐(0) 编辑
摘要:sleep(),wait(),yield() 的区别 sleep方法和yield方法是Thread类的方法,wait方法是Object的方法。 sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,不会释放锁标志。 wait方法调用后,线程会放弃对象锁,进入 阅读全文
posted @ 2016-10-22 09:58 且听风吟-wuchao 阅读(466) 评论(0) 推荐(0) 编辑
摘要:花园入口计数 花园有多个入口,希望统计花园每天的总人数。 在阻塞时终结 上面的例子中,Entrance.run()循环中包含sleep()的调用。sleep()终将被唤醒,任务又返回循环开始的地方判断canceled标志,从而决定是否跳出循环。但是,sleep()下,它使任务变为阻塞,而我们有时候需 阅读全文
posted @ 2016-10-21 21:06 且听风吟-wuchao 阅读(302) 评论(0) 推荐(0) 编辑
摘要:本章主要讲如何解决访问共享资源时的竞争问题。 其中关于synchronized关键子,显式lock锁等详细内容看我写的这篇文章。 下面主要讲原子类、临界区和线程本地存储: 原子类 J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronize 阅读全文
posted @ 2016-10-21 16:35 且听风吟-wuchao 阅读(158) 评论(0) 推荐(0) 编辑
摘要:定义任务 描述一个任务,使用Runnable接口,实现其run方法即可。以下为一个倒计时的任务,打印倒计时以及任务的ID。 Thread.yield()的调用是对线程调度器的一种声明:当前线程已经完成生命周期中的最重要的部分,现在可以切换给其他任务执行一段时间了。 A hint to the sch 阅读全文
posted @ 2016-10-21 15:50 且听风吟-wuchao 阅读(310) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示