zoukankan      html  css  js  c++  java
  • java中锁的应用(synchronized)

         在面试菜鸟的时候碰到的锁的编程问题,没答好,记录一下:

    package com.xielu.test;
    
    /**
     * Hello world!
     *
     */
    public class App 
    {
        private Object lock = new Object();
        private static int cnt = 1;
        private static final int MAX = 100;
        public static void main( String[] args )
        {
            Thread th1 = new Thread(){
                @Override
                public void run(){
                    synchronized(lock){
                        while(cnt <= MAX){
                            if(cnt%2 != 0){
                                System.out.println(cnt);
                                cnt++;
                                lock.notifyAll();
                            } else{
                                try{
                                    lock.wait();
                                }catch(Exception e){
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            };
            Thread th2 = new Thread(){
                @Override
                public void run(){
                    synchronized(lock){
                        while(cnt <= MAX){
                            if(cnt%2 == 0){
                                System.out.println(cnt);
                                cnt++;
                                lock.notifyAll();
                            } else{
                                try{
                                    lock.wait();
                                }catch(Exception e){
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            };
    
            th1.start();
            th2.start();
        }
    }
    

      

  • 相关阅读:
    JAVA面试题
    Io流
    初识线程池
    理解事务的4种隔离级别
    简单认识Git与GitHub
    JAVA自动装箱和拆箱
    代码块以及他们的执行顺序
    反射机制
    java Excel表格
    访问修饰符的含义分析
  • 原文地址:https://www.cnblogs.com/spillage/p/15470879.html
Copyright © 2011-2022 走看看