zoukankan      html  css  js  c++  java
  • 执行完线程1再执行线程2 以及线程1和线程2共同执行

    1
    package test;
    
    
    public class AThread extends Thread
    {
    	String name;
    	public AThread(String name)
    	{
    		this.name=name;
    	}
    	static Object printer=new Object();
    	 public void run()
    	{
    		 
    		 synchronized(printer)
    		{
    			int i=1;
    			while(i<=5)
    			{
    				System.out.println(name+"执行步骤"+i);
    				i++;
    			}
    		}
    	}
    	public static void main(String[] args) 
    	{
    		AThread thread1=new AThread("线程1");
    		AThread thread2=new AThread("线程2");
    		thread1.start();
    		thread2.start();
    	}
    
    
    }
    运行结果:
    线程1执行步骤1
    线程1执行步骤2
    线程1执行步骤3
    线程1执行步骤4
    线程1执行步骤5
    线程2执行步骤1
    线程2执行步骤2
    线程2执行步骤3
    线程2执行步骤4
    线程2执行步骤5
    
    
    2去掉 
    static Object printer=new Object();
    和synchronized(printer){}即可
    运行结果:
    线程1执行步骤1
    线程2执行步骤1
    线程1执行步骤2
    线程2执行步骤2
    线程1执行步骤3
    线程2执行步骤3
    线程1执行步骤4
    线程2执行步骤4
    线程1执行步骤5
    线程2执行步骤5

  • 相关阅读:
    构建之法阅读笔记02
    四则运算2
    第一周学习进度条
    简单四则运算
    构建之法阅读笔记01
    简读《构建之法》,所想问题展示
    介绍
    典型用户和用户场景描述
    工作总结03
    工作总结02
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470932.html
Copyright © 2011-2022 走看看