java中线程的同一个实例_Java中同一对象的不同实例上的多线程

I’ve learned that every class byte code is been loaded to the memory once for each class loader,thus when a thread is executing the byte code of some method,and another thread comes along?

类加载和字节码在这里是无关紧要的.字节代码是JVM解释并编译为本地机器代码的一组类似于Assembly的指令.多个线程可以安全地遵循编码为字节码的指令集.

1 thread -> 1 instance – of class Test,no problem

大部分是正确的如果只有一个线程,那么没有任何立即需要使任何线程安全.然而,忽视线程安全将限制增长和重新使用.

X threads -> 1 instance – of class Test,need to be handled this is clear.

那么是的,对于线程可见性原因,并确保关键区域是原子执行的,使用同步或锁定技术是非常重要的.当然这一切都取决于吗?如果你的类没有状态(实例或类变量),那么你真的不需要使其线程安全(认为实用程序类,如Java的Executors,Arrays,Collections类).

X threads -> X respective instances – of class Test,????

如果每个线程都有自己的Test类,并且没有单个实例在多个线程之间共享,那么这与第一个例子是一样的.如果Test的一个实例被两个或多个线程引用,那么与第二个例子相同.

if the method uses a class level variables,can I be sure it will use the right ones?

类变量是Java中的静态变量.已经发布了两个答案,强调使用synchronized来防止多个线程同时修改类变量的重要性.没有提到使用synchronized或volatile的重要性,以确保您看不到类变量的陈旧版本.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值