zoukankan      html  css  js  c++  java
  • java例程练习(关于线程同步的补充)

    /*
     * 从运行结果看,当m1()方法被锁定后,m2()方法仍然可以执行。
     * 而且b的值被改变。由此可以得出结论:
     * sychronized 只是防止其定义的代码段被同时调用。
     * 
     */
    
    
    public class Test implements Runnable{
    	int b = 100;
    	
    	public synchronized void m1() throws Exception {
    		b = 1000;
    		Thread.sleep(5000);
    		System.out.println("b = " + b);
    	}
    	
    	public void m2() {
    		System.out.println(b);
    	}
    	
    	public void run() {
    		try {
    			m1();
    		} catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public static void main(String[] args) throws Exception {
    		Test t = new Test();
    		Thread th = new Thread(t);
    		th.start();
    		
    		Thread.sleep(1000);//确保线程启动
    		t.m2();
    	}
    	
    }
    /*
    运行结果:
    
    	1000
    	b = 1000
    
    */
    
    /*
     * 从运行结果看,当m1()方法被锁定后,m2()方法仍然可以执行。
     * 而且b的值被改变。由此可以得出结论:
     * sychronized 只是防止其定义的代码段被同时调用。
     * 将m2()锁定后,更改部分代码结果???
     * 
     */
    
    
    public class Test implements Runnable{
    	int b = 100;
    	
    	public synchronized void m1() throws Exception {
    		b = 1000;
    		Thread.sleep(5000);
    		System.out.println("b = " + b);
    	}
    	
    	public synchronized void m2() throws Exception {
    		Thread.sleep(2500);
    		b = 2000;
    	}
    	
    	public void run() {
    		try {
    			m1();
    		} catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public static void main(String[] args) throws Exception {
    		Test t = new Test();
    		Thread th = new Thread(t);
    		th.start();
    		
    		Thread.sleep(1000);//确保线程启动
    		t.m2();
    		System.out.println(t.b);
    	}
    	
    }
    /*
    运行结果:
    
    	b = 1000
    	2000
    
    */
    


  • 相关阅读:
    OCP-1Z0-053-V12.02-235题
    OCP-1Z0-053-V12.02-524题
    OCP-1Z0-053-V12.02-525题
    OCP-1Z0-053-V12.02-526题
    OCP-1Z0-053-V12.02-535题
    OCP-1Z0-053-V12.02-540题
    OCP-1Z0-053-V12.02-617题
    OCP-1Z0-053-V12.02-649题
    如何制作Jar包并在android中调用jar包
    JAVA实现回调
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671689.html
Copyright © 2011-2022 走看看