java live
bhscHello
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
我的理解--关于jmx
JMX Java Management Extensions,Java管理扩展,初步看了些资料,以为是专门管理,监控jvm的一些信息的,特别是visual VM这个监控jvm的东西,还有一个添加JMX连接的时候(我自己想错了,那样的话应该叫jvm Management Extensions),其实他能使得基于java语言开发的程序能被管理,并且是可扩展的。 Jdk以前是通过JVM...2010-05-28 16:58:49 · 292 阅读 · 0 评论 -
关于java线程(1)
关于线程基础 A. 并发在java中本身就是无处不在,例如Servlet天生就是多线程的,还有一些后台线程,进程和线程出现的原因,基本都是为了更好更合理的利用资源,更公平! 如果是在单处理器上,那么并发从某种角度上看,就是将顺序执行的任务拆分成并发执行,算上上下文切换的开销,其实更花时间!但是有阻塞IO或者大计算的时候,如果没有并发,程序会停止。有了并发,其他任务还可以同时进行,...2011-06-17 00:26:41 · 156 阅读 · 0 评论 -
关于java线程(2)----访问共享数据:竞争与协作
A.共享对象 一个线程在它的生命周期内都只会访问它自己的局部变量,那么他是无状态的,它永远是线程安全的,这是最好的状态,代码和非并发模式下没有什么不同。但是在高并发情况下,经常用同时访问一个共享数据,比如: 1.集合的CRU操作、一些符复合操作 2.某些关键资源的初始化,检查再运行(check-then-act) 如果不能很好的控制这些共享资源,那么就会...2011-06-18 19:27:38 · 220 阅读 · 0 评论 -
关于java线程(3)--中断任务
线程的状态四种: 1.新建 new,线程被创建时,会短暂的处于这种状态,他已经分配了必需的资源,并执行了初始化, 2.就绪Runnable,这种状态下,只要调度器把时间片分配给线程,线程就可以运行。 3.阻塞Blocked,线程能够运行,但是某个条件阻塞了,调度器将忽略线程,不会分配线程任何CPU时间,直到线程重新进入就绪状态 4.死亡Dead,处于死亡或终止状态的线程将不再是可调度...2011-06-19 21:13:48 · 302 阅读 · 0 评论 -
关于java线程(4)----JUC之 AQS 状态依赖的抽象
JUC之 AQS 状态依赖的抽象 AQS全称为:AbstractQueuedSynchronizer,它是juc的synchronizer的基础 状态依赖的管理 在JUC中,不管是FutureTask、CountDownLatch、Lock、还是信号量,CyclicBarrier,从某种角度来说,他们都是依赖某种状态,或者说条件,虽然这些条件的值不同: 1.Fu...2011-07-02 15:30:53 · 310 阅读 · 0 评论 -
AQS:ReentrantLock源码分析
接着上一篇的 关于java线程(4)----JUC之 AQS 状态依赖的抽象 看一下ReentrantLock的源码,这里只是从AQS的角度出发,并不是从Lock的角度来看,那个以后再分析把 从AQS的状态角度,代码整体结构上是这样的: //检查状态 while(!checkAndChangeState){ enque(currentthread) ...2011-07-03 22:04:36 · 264 阅读 · 0 评论 -
关于java线程(4)----JUC之 原子操作
Java 理论与实践: 流行的原子 Java 理论与实践: 非阻塞算法简介 在java中确保共享变量线程安全的传统方式是使用同步,同步可以确定访问一组变量的所有线程都将拥有对这些变量的独占访问权(原子性),并且其他线程获得该锁定时,将可以看到对这些变量的更改(可见性)。但是锁的代价太昂贵,特别是在竞争很厉害的时候,影响吞吐量。 基本变量的原子访问+volatile ...2011-07-17 22:35:39 · 290 阅读 · 0 评论
分享