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

  • 相关阅读:
    各个地区2.4G及5G信道一览表 [转]
    nf_conntrack
    串口 属性 设置 termios.h [转载&修改]
    802.3 Logical Link Control 协议相关
    HTTP协议中GET、POST和HEAD的介绍[转载]
    Android Shell、SSH、GCC安装与配置
    mybatis中sql语句总结
    [leedcode 128] Longest Consecutive Sequence
    [leedcode 126] Word Ladder
    [leedcode 125] Valid Palindrome
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671691.html
Copyright © 2011-2022 走看看