性能问答>Java多线程中static方法会被复制还是不复制?>
2回复

Java多线程中static方法会被复制还是不复制?



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

2709 阅读
请先登录,查看2条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步