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();    //执行线程
     
    
        }
    }
  • 相关阅读:
    spark java wordCount实例
    SpringMVC 商城项目
    jstl 遍历数据
    jquery 方法总结
    8ch
    7ch
    使用vuex实现组件间传值
    Vue父子组件之间传值
    从浏览器输入URL地址到最终页面渲染完成,发生了什么?
    数组去重
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/5964580.html
Copyright © 2011-2022 走看看