zoukankan      html  css  js  c++  java
  • 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法

    当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法
    对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的。

    原因很简单:锁对象只有一个  一次只能被一个线程拥有 而访问非同步方法不需要锁对象

     1 public class TT implements Runnable {
     2      int b = 100;
     3      public synchronized void m1(){
     4             b = 10000;
     5             try {
     6                 Thread. sleep(5000);
     7                 System. out.println( "m1----b="+ b);
     8            } catch (InterruptedException e) {
     9                 e.printStackTrace();
    10            }
    11      }
    12      public void m2(){
    13            System. out.println( "m2====="+ b);
    14      }
    15      @Override
    16      public void run() {
    17            m1();
    18      }
    19      public static void main(String[] args) {
    20            TT tt = new TT();
    21            Thread t = new Thread(tt);
    22            t.start();
    23             try {
    24                 Thread. sleep(1000);
    25            } catch (InterruptedException e) {
    26                 e.printStackTrace();
    27            }
    28            tt.m2();
    29      }
    30 }
  • 相关阅读:
    SCP-S模拟56 C题
    NOIP模拟测试22
    NOIP模拟测试21
    NOIP模拟测试20
    NOIP模拟测试19
    网络流24题
    NOIP模拟测试18
    NOIP模拟测试16
    那些年我们颓过的游戏
    csp2019游记
  • 原文地址:https://www.cnblogs.com/wihainan/p/4766694.html
Copyright © 2011-2022 走看看