2011年8月3日
摘要: Java的内存模型分为主存储区和工作存储区。主存储区保存了Java中所有的实例。也就是说,在我们使用new来建立一个对象后,这个对象及它内部的方法、变量等都保存在这一区域,在MyThread类中的n就保存在这个区域。主存储区可以被所有线程共享。而工作存储区就是我们前面所讲的线程栈,在这个区域里保存了在run方法以及run方法所调用的方法中定义的变量,也就是方法变量。在线程要修改主存储区中的变量时,并不是直接修改这些变量,而是将它们先复制到当前线程的工作存储区,在修改完后,再将这个变量值覆盖主存储区的相应的变量值。1.多线程中有主内存和工作内存之分, 在JVM中,有一个主内存,专门负责所有线程共 阅读全文
posted @ 2011-08-03 11:40 TankMa 阅读(303) 评论(0) 推荐(0) 编辑
摘要: java中synchronized用法 使用了synchronized关键字可以轻松地解决多线程共享数据同步问题。synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。 synchronized取得的锁都是对象;每个对象只有一个锁(lock)与之相关联;实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。synchroni. 阅读全文
posted @ 2011-08-03 11:39 TankMa 阅读(405) 评论(0) 推荐(0) 编辑