zoukankan      html  css  js  c++  java
  • JAVA线程相互排斥问题

    public class TraditionalThreadSynchonized {
    
    	public static void main(String[] args) {
    
    		final OutPuter output = new TraditionalThreadSynchonized().new OutPuter();
    		new Thread(new Runnable() {
    
    			@Override
    			public void run() {
    
    				while (true) {
    					try {
    						Thread.sleep(1000);
    						output.output("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
    					} catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    		}).start();
    
    		new Thread(new Runnable() {
    
    			@Override
    			public void run() {
    
    				while (true) {
    					try {
    						Thread.sleep(1000);
    						output.output("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
    					} catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    		}).start();
    
    	}
    
    	class OutPuter {
    
    		public void output(String name) {
    			for (int i = 0; i < name.length(); i++)
    				System.out.print(name.charAt(i));
    			System.out.println();
    		}
    	}
    
    }
    

    代码执行结果例如以下:

    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AA
    BBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBB
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    

    改动Oupter类就可以达到相互排斥效果:

    class OutPuter {
    
    		public void output(String name) {
    
    			synchronized (this) {
    				for (int i = 0; i < name.length(); i++)
    					System.out.print(name.charAt(i));
    				System.out.println();
    			}
    
    		}
    	}

    执行效果例如以下

    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    

    很多其它内容请关注小猿公众号love_coding

  • 相关阅读:
    html 3
    html标签2
    html标签
    2017.4.27
    2017.4.26
    2017.4.25
    2017.4.20
    2017.1.18
    2017.4.17
    2017.4.16.
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4068374.html
Copyright © 2011-2022 走看看