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

  • 相关阅读:
    falsk简单项目示例
    bootstrap基础
    flask models循环使用和migrate迁移脚本
    flask-script
    flask 钩子函数
    flask get和post请求使用
    flask SQLALchemy外键及约束
    flask SQLAlchemy
    关于虚拟机端口转发的一次理解和记录
    记录一次VMware与xshell远程链接的总结
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671691.html
Copyright © 2011-2022 走看看