总结一些使用多线程相关的问题

每个java程序启动都会实例化一个java虚拟机,一个java虚拟机就是一个操作系统级别的进程;
java中的堆是用来分配使用关键字new得出来的对象,由jvm都其进行垃圾回收;
对于java中线程,每个线程有一个堆栈(stack),栈中主要存放基本类型的对象还有一般对象的引用(指针),那么栈中的数据和其引用的数据对于线程来说是独立占有的;
对于程序的代码段是共享的,而且是不可改变的;
所以一般可能出现共享的对象都是文件,数据库,或者在spring中经常使用的单例;
对于同步的问题,java里面有关键字sycronized,既可以作用于函数,也就相当于程序的代码段,保证同一时间只有一个线程运行该代码段,也可以使用与对象,使该对象在同一时间只可以有一个线程对其进行操作;
原文地址:https://www.cnblogs.com/elvinni/p/2662605.html