因为,在多线程中使用同一个静态方法时,每个线程使用各自的实例字段(instance field)的副本,而共享一个静态字段(static field)。所以说,如果该静态方法不去操作一个静态成员,只在方法内部使用实例字段(instance field),不会引起安全性问题。但是,如果该静态方法操作了一个静态字段,则需要静态方法中采用互斥访问的方式进行安全处理。
多线程中使用静态方法---转
原创
©著作权归作者所有:来自51CTO博客作者思记享的原创作品,请联系作者获取转载授权,否则将追究法律责任
在多线程中使用静态方法是否有线程安全问题?这要看静态方法是是引起线程安全问题要看在静态方法中是否使用了静态成员。
因为,在多线程中使用同一个静态方法时,每个线程使用各自的实例字段(instance field)的副本,而共享一个静态字段(static field)。所以说,如果该静态方法不去操作一个静态成员,只在方法内部使用实例字段(instance field),不会引起安全性问题。但是,如果该静态方法操作了一个静态字段,则需要静态方法中采用互斥访问的方式进行安全处理。
因为,在多线程中使用同一个静态方法时,每个线程使用各自的实例字段(instance field)的副本,而共享一个静态字段(static field)。所以说,如果该静态方法不去操作一个静态成员,只在方法内部使用实例字段(instance field),不会引起安全性问题。但是,如果该静态方法操作了一个静态字段,则需要静态方法中采用互斥访问的方式进行安全处理。
上一篇:mysql主从复制
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python threading Thread多线程的使用方法
Python threading Thread多线程的使用方法参考资料:《Python 多线程》http://www.runoob.com/python/python-multithreading
Python threading Python thread多线程 Python实现多线程 threading Thread -
Thread.Start()方法运行多线程
Java多线程创建与运行理了一下线程的创建和运行,可以看到线程最终都是通过new一
java并发 内存可见性 临界资源 上下文切换 -
多线程Thread中常用方法,优先级的使用
1. start():启动当前线程;调用当前线程的run()2. run():通常需要重写Thread类中的此方法
多线程 java thread android python