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.
    
     */

  • 相关阅读:
    LeetCode 226. Invert Binary Tree
    LeetCode 221. Maximal Square
    LeetCode 217. Contains Duplicate
    LeetCode 206. Reverse Linked List
    LeetCode 213. House Robber II
    LeetCode 198. House Robber
    LeetCode 188. Best Time to Buy and Sell Stock IV (stock problem)
    LeetCode 171. Excel Sheet Column Number
    LeetCode 169. Majority Element
    运维工程师常见面试题
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671691.html
Copyright © 2011-2022 走看看