zoukankan      html  css  js  c++  java
  • Java 学习笔记之 线程安全

    线程安全:

    线程安全的方法一定是排队运行的。

    public class SyncObject {
        synchronized public void methodA() {
            try {
                System.out.println("begin methodA threadName = " +
                        Thread.currentThread().getName());
                Thread.sleep(5000);
                System.out.println("end");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
    }
    
    public class SyncThreadA extends Thread{
        private SyncObject object;
    
        public SyncThreadA(SyncObject object) {
            this.object = object;
        }
    
        @Override
        public void run() {
            super.run();
            object.methodA();
        }
    }
    
    public class SyncThreadB extends Thread{
        private SyncObject object;
    
        public SyncThreadB(SyncObject object) {
            this.object = object;
        }
    
        @Override
        public void run() {
            super.run();
            object.methodA();
        }
    }
    
    public class ThreadRunMain {
        public static void main(String[] args) {
            testSyncThread();
        }
        public static void testSyncThread(){
            SyncObject object = new SyncObject();
            SyncThreadA a = new SyncThreadA(object);
            a.setName("A");
            SyncThreadB b = new SyncThreadB(object);
            b.setName("B");
            a.start();
            b.start();
        }
    
    }

    运行结果:

    如果去掉synchronized,运行结果:

  • 相关阅读:
    URL编码与解码
    什么通用数据交换格式更好
    JSON(JavaScript Object Notation)
    二维码与json都是数据交换格式
    数据的存在形式
    NSData、数据结构与数据转换
    物理结构与逻辑结构
    NSKeyedArchiver : NSCoder
    The Role of View Controllers
    Content-Type与MIME
  • 原文地址:https://www.cnblogs.com/AK47Sonic/p/7710062.html
Copyright © 2011-2022 走看看