静态方法在多线程下的调用
2010-12-17 00:03
281 查看
class Program { static void Main(string[] args) { Thread t1 = new Thread(new ParameterizedThreadStart(Work)); t1.Start(0); Thread.Sleep(1000); Thread t2 = new Thread(new ParameterizedThreadStart(Work)); t2.Start(1); Console.Read(); } static void Work(object obj) { int i = (int)obj; if (i == 0) { Thread.Sleep(100000); } else { Console.WriteLine("ok"); } } }
因为程序里会有多线程同时调用同一个静态(static)方法的情况,我有些担心当一个线程在调用静态方式时挂起会不会影响另一个线程对该静态方法的调用?
上面实验可以证明我的担心是多余的。静态方法和在方法内定义的局部变量都是独立的副本。
相关文章推荐
- java多线程并发去调用一个类的静态方法安全性探讨
- paip.多线程调用静态方法错乱的解决
- java多线程并发去调用一个类的静态方法,会有问题吗?
- 多线程陷阱(不要调用run方法;静态的同步方法)
- java多线程并发去调用一个类的静态方法安全性探讨
- Java多线程运行时,尽可能调用单例对象、工具类和静态方法,这样可以减少内存的占用量
- 多线程调用静态方法
- 多线程调用同一静态方法会有多线程问题吗
- PHP的Calling Scope(::调用非静态方法)
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- 安卓利用kotlin的变长参数与伴生对象写出java可以调用的静态方法
- 静态方法调用非静态方法
- SpringMVC中静态方法调用非静态方法
- java中静态方法为什么不能调用非静态方法或者变量
- JNI调用Java中的静态非静态方法
- 静态方法中调用非静态方法
- native 调用 java 类中的一个静态方法
- 为什么不能从静态的方法里面调用非静态方法,或变量?
- 多线程之静态同步函数/方法
- 静态方法不能直接调用实例方法和变量,但可以间接调用(即在静态方法中创建类的实例,然后调用)