2回复
4年前
Java多线程中static方法会被复制还是不复制?
已经知道在没有共享变量的情况下多线程执行static方法是线程安全的。但是网上大致有两种观点,一种是线程会copy一份静态方法到线程内存,然后执行线程本地操作实现线程隔离。另外一种说法是无论是静态方法还是非静态方法,最终都是加载到方法区的,该部分代码不会被修改,只能传入数据进去。可能存在多个线程同时调用一份方法不同位置的情况。我个人比较倾向这种说法,但是对于单个线程来说,究竟是如何做到记录内部数据,保障数据安全性的我感觉理解的不是很深入。有没有非常懂jvm构造和多线程的大神详细的点拨一下?
2984 阅读