摘要:
每个java程序启动都会实例化一个java虚拟机,一个java虚拟机就是一个操作系统级别的进程;java中的堆是用来分配使用关键字new得出来的对象,由jvm都其进行垃圾回收;对于java中线程,每个线程有一个堆栈(stack),栈中主要存放基本类型的对象还有一般对象的引用(指针),那么栈中的数据和其引用的数据对于线程来说是独立占有的;对于程序的代码段是共享的,而且是不可改变的;所以一般可能出现共享的对象都是文件,数据库,或者在spring中经常使用的单例;对于同步的问题,java里面有关键字sycronized,既可以作用于函数,也就相当于程序的代码段,保证同一时间只有一个线程运行该代码段, 阅读全文
摘要:
java的并发是一个复杂的主题,信手拈来就可以发现一大堆的有趣的问题。这里不讨论生产者模式,主要关注如何用java来实现该模式;这个例子是由生产者生产随机数,多个线程来取随机数;package ThreadTest;public class SetOfNum { private int numOne;//标记资源是否可用 private int numTwo;//资源的内容 public int getNumOne() { return numOne; } public void setNumOne(int numOne) { this... 阅读全文