多线程
zhouyong0
这个作者很懒,什么都没留下…
展开
-
线程同步synchronized和volatile
上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的,为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。 要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共转载 2012-04-06 13:09:14 · 593 阅读 · 0 评论 -
java volatile
volatile关键字有什么用? 恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码 或方法;看如下三句get代码: int i1; int geti1() {return i1;} volatile int i2;转载 2012-03-22 13:01:44 · 875 阅读 · 0 评论 -
读写锁
ReentrantReadWriteLock 说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。然后就是总结这个锁机制的特性了: (a).重入方面其内部的WriteLock可以获取ReadLock,但是反过来ReadLock想要获得WriteLock则永远都不要想。转载 2012-03-22 11:09:55 · 570 阅读 · 0 评论 -
Java Daemon线程
所谓守护线程就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程 2.Daemon thread在Java里面的定义是,如果虚拟机中只有Daemon thread在运行,则虚拟机退出。 虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。转载 2012-08-14 13:25:00 · 13551 阅读 · 0 评论 -
Java线程之间的关系
一直对主线程、子线程、守护线程的概念与之间的关系不太理解,比如是不是主线程运行退出后其创建的子线程是否也会退出,主线程创建子线程后,子线程与主线程是否还有依赖关系?是否需要设置为守护线程后才接触依赖?今天特地用java做了个实验。 实验使用代码如下: import java.lang.Thread; class Thread1 extends Thread{ publ转载 2012-08-14 13:28:02 · 2855 阅读 · 0 评论