package Demo_Test;
public class Demo_Thread {
public static void main(String[] args) {
//同步
new Thread(new MyThread_synchronized()).start();
/*创建匿名线程对象*/
Thread td=new Thread(new Runnable(){
public void run()
{
for(int i=0;i<5;i++)
{
System.out.println("匿名线程正在运行"+i);
}
}
});
td.start();
}
}
class MyThread_synchronized implements Runnable
{
public void run()
{
synchronized(new Object())//同步代码块
{
for(int i=0;i<50;i++)
{
System.out.println("同步:MyThread_implements线程正在运行"+i);
}
}
}
}
结果:
同步:MyThread_implements线程正在运行0
匿名线程正在运行0
同步:MyThread_implements线程正在运行1
匿名线程正在运行1
匿名线程正在运行2
匿名线程正在运行3
匿名线程正在运行4
同步:MyThread_implements线程正在运行2
同步:MyThread_implements线程正在运行3
......
有点不懂: for(int i=0;i<50;i++){...}处在同步块中,为什么还会出现上面的运行结构啊????
个人理解:
for(int i=0;i<50;i++)
{
System.out.println("同步:MyThread_implements线程正在运行"+i);
}
在同步块中,应该执行完后其它线程才运行的啊!
求赐教!
|