zoukankan      html  css  js  c++  java
  • java 线程数据同步

    java 线程数据同步

    由买票实例

    //java线程实例
    //线程数据同步
    //卖票问题
    //避免重复卖票
    
    //线程
    class xc1 implements Runnable{
        
        //定义为静态,可以使多个对象使用同一个数据
        public static int chepiao = 10;    //车票总数
        
        public static String aa = new String("123");    //字符串随意定义,定义在函数上面
        
        public void run(){
            
            while(true){
                
                //synchronized的作用是,让它所管辖的代码部分,要么全部执行完,要么全部不执行
                //synchronized既可以修饰代码块,又可以修饰方法
                //synchronized如果直接放在方法上使用。使用方法为  public synchronized 方法名
                //这里为什么要加(aa),原因在于,如果能得到aa,就执行
                synchronized(aa){    
                    
                    if(chepiao>0){
                        chepiao--;
                        System.out.println(Thread.currentThread().getName()+"车站,已经卖出第 "+(chepiao+1)+" 张车票");
                    }
                    else{
                        break;
                    }
                }
    
            }
            
        }
    }
    
    
    public class Index{
        public static void main(String[] args){
            
    
            //线程1
            xc1 xc1 = new xc1();
            Thread xc1_Thread = new Thread(xc1);
            xc1_Thread.start();    //执行线程
            
            
            //线程2
            xc1 xc2 = new xc1();
            Thread xc2_Thread = new Thread(xc2);
            xc2_Thread.start();    //执行线程
            
            //线程3
            xc1 xc3 = new xc1();
            Thread xc3_Thread = new Thread(xc3);
            xc3_Thread.start();    //执行线程
     
    
        }
    }
  • 相关阅读:
    PyCharm 2017.1.3版本破解
    Python 字典
    Python 列表和元组
    总结2016,展望2017
    使用MATLAB对图像处理的几种方法(下)
    使用MATLAB对图像处理的几种方法(上)
    忍不住想,我为什么要来大城市?
    学习技术的心得
    Net中的常见的关键字
    面向对象的JS(一)
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/5964580.html
Copyright © 2011-2022 走看看