随笔分类 -  杨凯--JAVA多线程

摘要:1.volatile 变量可以被看作是一种 “程度较轻的 synchronized”。2.Lock实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作。同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性... 阅读全文
posted @ 2013-12-03 19:27 yangkai_keven 阅读(760) 评论(0) 推荐(0) 编辑
摘要:这是一个真实案例,曾经惹出硕大风波,故事的起因却很简单,就是需要实现一个简单的计数器,每次取值然后加1,于是就有了下面这段代码: privateintcounter=0;publicintgetCount(){returncounter++;} 这个计数器被用于生成一个sessionId... 阅读全文
posted @ 2013-12-03 18:30 yangkai_keven 阅读(238) 评论(0) 推荐(0) 编辑
摘要:JPDA 概述所有的程序员都会遇到 bug,对于运行态的错误,我们往往需要一些方法来观察和测试运行态中的环境。在 Java 程序中,最简单的,您是否尝试过使用System.out.println()来输出您的 Java 程序的执行中的各种变量状态来发现您的 Java 程序运行时的问题?这种方式方便易... 阅读全文
posted @ 2013-12-03 17:14 yangkai_keven 阅读(291) 评论(0) 推荐(0) 编辑
摘要:Java 原子类 java.util.concurrent.atomic1、i++为什么是非线程安全的i++其实是分为3个步骤:获取i的值, 把i+1, 把i+1的结果赋给i如果多线程执行i++操作,没有同步的话,结果可能不正确如两个线程同时获取i的值,然后各自+1后,赋给i。正确的情况下i的值应该... 阅读全文
posted @ 2013-11-07 10:21 yangkai_keven 阅读(221) 评论(0) 推荐(0) 编辑
摘要:网上资料:使用 AtomicBoolean 高效并发处理 “只初始化一次” 的功能要求:1privatestaticAtomicBoolean initialized = newAtomicBoolean(false);23publicvoidinit()4{5if( initialized.com... 阅读全文
posted @ 2013-11-07 10:09 yangkai_keven 阅读(1174) 评论(0) 推荐(0) 编辑
摘要:对于多线程有了一点了解之后,那么来看看java.lang.concurrent包下面的一些东西。在此之前,我们运行一个线程都是显式调用了Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行,而且这将成为以后常用的方法或者实现思路。看一个简单的例子:Java代码pu... 阅读全文
posted @ 2013-11-07 09:39 yangkai_keven 阅读(283) 评论(0) 推荐(0) 编辑
摘要:/*@author shijin* 生产者与消费者模型中,要保证以下几点:* 1 同一时间内只能有一个生产者生产 生产方法加锁sychronized* 2 同一时间内只能有一个消费者消费 消费方法加锁sychronized* 3 生产者生产的同时消费者不能消费 生产方法加锁sychronize... 阅读全文
posted @ 2013-11-06 20:00 yangkai_keven 阅读(266) 评论(0) 推荐(0) 编辑

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