package NewPkg;
class sample extends Thread{
synchronized static void show()
{ //synchronized(this){
for(int i=0;i<5;i++)
{
System.out.println(i);
}
//}
}
}
class ThreadOne extends Thread {
public void run()
{
System.out.println("t1");
sample.show();
}
}
class ThreadTwo extends Thread {
public void run()
{
System.out.println("t2");
sample.show();
}
}
public class A {
public static void main (String args[]){
ThreadOne t1 = new ThreadOne();
ThreadTwo t2 = new ThreadTwo();
t1.start();
t2.start();
}
}
有人请检查此代码并告诉我是否有任何错误。 尝试删除“同步静态”内容并执行,检查同步块和方法场景。 当我执行程序,很多时候我看到相同的输出显示...我想知道多线程概念中的同步静态,同步块和方法使用之间的确切区别。我看到下面代码中的同步静态,同步方法和同步块方案的输出相同
这不是建议问题的重复内容,因为同步静态方法和同步实例方法之间存在功能差异,并且在建议的重复内容中没有涵盖该差异。 –
@WarrenDew例如,它在后面的答案[peter's](http://stackoverflow.com/a/574258/438154)中有介绍。 –