zoukankan      html  css  js  c++  java
  • java例程练习(多线程[线程同步问题])

    //线程同步问题
    public class TestThread implements Runnable{
    	Timer timer = new Timer();
    
    	public static void main(String[] args) {
    		TestThread test = new TestThread();
    		Thread t1 = new Thread(test);
    		Thread t2 = new Thread(test);
    		t1.setName("t1");
    		t2.setName("t2");
    		t1.start();
    		t2.start();
    
    	}
    
    	public void run() {
    		timer.add(Thread.currentThread().getName());
    	}
    }
    
    class Timer {
     	private static int num = 0;
    	public void add(String name) {
    
    		num ++;
    		 try {
    			Thread.sleep(1);// ---放大效果
    		} catch(InterruptedException e) {}
    
    		System.out.println//   可能被打断
    			(name + ", 你是第" + num + "个使用timer的线程");
    	}
    }
    
    //以下3个类相同,【运行结果】为第一个类的结果,请注释其他2个相同的类
    //2,3两个类主要介绍synchronized 的使用方式
    
    class Timer {
    	private static int num = 0;
    	public void add(String name) {
    		synchronized(this) { //锁定代码段
    			num ++;
    			 try {
    				Thread.sleep(1);// ---放大效果
    			} catch(InterruptedException e) {}
    
    			System.out.println//   可能被打断
    				(name + ", 你是第" + num + "个使用timer的线程");
    		}
    	}
    }
    
    class Timer {
     	private static int num = 0;
    	public synchronized void add(String name) {//锁定过程
    
    		num ++;
    		 try {
    			Thread.sleep(1);// ---放大效果
    		} catch(InterruptedException e) {}
    
    		System.out.println//   可能被打断
    			(name + ", 你是第" + num + "个使用timer的线程");
    	}
    }
    
    
    /*
     运行结果
     --------------------Configuration: <Default>--------------------
    t1, 你是第2个使用timer的线程
    t2, 你是第2个使用timer的线程
    
    Process completed.
    
     */

  • 相关阅读:
    云架构师进阶攻略(3)
    微服务化之服务拆分与服务发现
    终于有人把云计算、大数据和人工智能讲明白了!(1)
    JavaScript的数组详解
    html中给元素添加背景图片或者gif动图
    JavaScript的事件
    JavaScript的匿名函数
    JavaScript获取和操作html的元素
    JavaScript的条件运算符与条件语句
    JavaScript变量、数据类型、函数
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671691.html
Copyright © 2011-2022 走看看