随笔分类 -  线程

摘要:Java关键字synchronized详解博客分类:Java综合Java多线程thread互联网制造 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C ... 阅读全文
posted @ 2015-06-08 21:35 wzhanke 阅读(258) 评论(0) 推荐(0)
摘要:@synchronized 锁的永远是对象 ,只针对于对象,只能锁对象,常量等是不能加synchronized,一旦加编译也不会通过@synchronized 锁对象中的非static 就是锁调用该方法的对象,是整个对象@synchronized 锁对象中的static 方法就是锁整个类 ,和 sy... 阅读全文
posted @ 2015-05-11 13:42 wzhanke 阅读(930) 评论(0) 推荐(0)
摘要:静态方法加锁,和非静态方法加锁区别博客分类:JAVA 基础多线程静态方法加锁对象锁和类锁多线程锁今天看了到有意思的题:在静态方法上加锁 和 非静态方法加锁 有什么区别,从而再次引出锁机制的一些理解。先看方法:// 这是一个很简单的类,里面共享静态变量 num,然后一个静态 和 非静态方法,都加上锁/... 阅读全文
posted @ 2015-05-11 13:18 wzhanke 阅读(18936) 评论(0) 推荐(2)
摘要:Java类锁和对象锁实践感谢[jiehao]同学的投稿,投稿可将文章发送到tengfei@ifeve.com类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明。一、相关约定为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定:1. 类锁:在代码中的方法上加了static和sy... 阅读全文
posted @ 2015-05-11 11:29 wzhanke 阅读(634) 评论(0) 推荐(0)
摘要:Java基础】并发 - 多线程分类:Java2014-05-03 23:56275人阅读评论(0)收藏举报Java目录(?)[+]介绍Java多线程多线程任务执行大多数并发应用程序时围绕执行任务(task)进行管理的;所谓任务就是抽象的,离散的工作单元。围绕执行任务来管理应用程序时,第一步是要指明一... 阅读全文
posted @ 2015-05-07 22:24 wzhanke 阅读(414) 评论(0) 推荐(0)
摘要:一步一步掌握线程机制(六)---Atomic变量和Thread局部变量 前面我们已经讲过如何让对象具有Thread安全性,让它们能够在同一时间在两个或以上的Thread中使用。Thread的安全性在多线程设计中非常重要,因为race condition是非常难以重现和修正的,我们很难发现,更加难以改... 阅读全文
posted @ 2015-05-07 22:21 wzhanke 阅读(343) 评论(0) 推荐(0)
摘要:compareAndSet()与weakCompareAndSet()是有条件的修改程序的方法,这两个方法都要取用两个参数:在方法启动时预期数据所具有的的值,以及要把数据所设定成的值。它们都只会在变量具有预期值的时候才会设定成新值,如果当前值不等于预期值,该变量就不会被重新赋值并且返回false。这... 阅读全文
posted @ 2015-05-07 22:18 wzhanke 阅读(1007) 评论(0) 推荐(0)
摘要:Java JUC之Atomic系列12大类实例讲解和原理分解2013-02-21 0个评论 作者:xieyuooo收藏我要投稿在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象... 阅读全文
posted @ 2015-05-07 22:05 wzhanke 阅读(251) 评论(0) 推荐(0)
摘要:AtomicInteger的并发处理博客分类:Effective JavaJDK1.5之后的java.util.concurrent.atomic包里,多了一批原子处理类。主要用于在高并发环境下的高效程序处理。网上关于这个原理介绍的比较靠谱的一片文章是出自IBM工程师的一篇:流行的原子值得一看。这里... 阅读全文
posted @ 2015-05-07 21:57 wzhanke 阅读(778) 评论(0) 推荐(0)
摘要:Java的多线程编程模型5--从AtomicInteger开始2011-06-23 20:5011393人阅读评论(9)收藏举报java多线程编程jniinteger测试AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时... 阅读全文
posted @ 2015-05-07 21:50 wzhanke 阅读(195) 评论(0) 推荐(0)
摘要:Java 理论与实践: 流行的原子新原子类是 java.util.concurrent 的隐藏精华在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化。请跟随并行专家 B... 阅读全文
posted @ 2015-05-07 21:48 wzhanke 阅读(257) 评论(0) 推荐(0)
摘要:Java 理论与实践: 非阻塞算法简介看吧,没有锁定!Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 ——... 阅读全文
posted @ 2015-05-07 21:25 wzhanke 阅读(197) 评论(0) 推荐(0)
摘要:熟悉并发的同学一定知道在java中处理并发主要有两种方式:1,synchronized关键字,这个大家应当都各种面试和笔试中经常遇到。2,volatile修饰符的使用,相信这个修饰符大家平时在项目中使用的也不是很多。这里重点说一下volatile:Volatile修饰的成员变量在每次被线程访问时,都... 阅读全文
posted @ 2015-05-07 21:09 wzhanke 阅读(764) 评论(0) 推荐(0)
摘要:遇到标题中的场景时我该怎么设计呢,假如就是标题中 有2个坑位A和B ,2个坑位之间同一个时间点互相抢,抢完修改2个坑位对象属性,但又担心第三者来抢 这2个坑位,所以2个坑位都要加锁,但是如果2个坑位加锁,假如 是A去抢B,A锁住了,B也锁住了,那在A中拿B时 和 B中拿A那就坑位死锁了,还有就是 抢... 阅读全文
posted @ 2015-05-07 18:03 wzhanke 阅读(276) 评论(0) 推荐(0)
摘要:Java多线程总结之线程安全队列Queue2014-03-02 22:2012337人阅读评论(1)收藏举报在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQue... 阅读全文
posted @ 2015-05-07 17:46 wzhanke 阅读(1537) 评论(0) 推荐(0)
摘要:概述软件包类使用树已过时索引帮助JavaTMPlatform StandardEd. 6上一个类 下一个类框架 无框架 所有类摘要:嵌套|字段|构造方法|方法详细信息:字段|构造方法|方法java.lang.management 接口 ThreadMXBeanpublic interface Thr... 阅读全文
posted @ 2015-04-27 18:03 wzhanke 阅读(7486) 评论(0) 推荐(0)
摘要:运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TCP和UDP实现方式,并且结合java1.5的concurrent.ExecutorService类来实... 阅读全文
posted @ 2015-04-27 17:53 wzhanke
摘要:通过实验研究“线程池中线程数目的变化规律” 自从看了老赵关于线程池的实验以后,我就想学着做一个类似的实验,验证自己的理解,现在终于做好了,请大家指正。 一般情况下我们都使用Thread类创建线程,因为通过Thread对象可以对线程进行灵活的控制。但创建线程和销毁线程代价不菲,过多的线程会消耗掉大量的... 阅读全文
posted @ 2015-04-27 17:37 wzhanke 阅读(388) 评论(0) 推荐(0)
摘要:一个对象中有一个状态 属性,现在业务需求 存在多线程来修改 和 拿去 这个状态 的值,这种情况如果加锁怎么加?一种是 在 set 和get 这个状态的 方法那加 synchronized 。还有一种方法 是set 方法那还是通过 synchronized 加锁,而 get 那就不用synchroni... 阅读全文
posted @ 2015-04-21 13:44 wzhanke 阅读(1085) 评论(0) 推荐(0)
摘要:比如上边的map里套map 定义变量为data,例如组队副本 npc 为1 下有众多房间 即Map> ,处于多线程下,一个线程在 npc为1的下边建一个房间,房间id为1即Map> ,这时候另外一个线程同时也要在 npc为1下建一个房间id为2的房间 即 Map> ,那我代码里肯定是 先 rooms... 阅读全文
posted @ 2015-04-13 21:56 wzhanke 阅读(885) 评论(0) 推荐(0)