博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个类有两个方法,其中一个是同步的,另一个是非同步的; 现在又两个线程A和B,请问:当线程A访问此类的同步方法时,线程B是否能访问此类的非同步方法?...
阅读量:5293 次
发布时间:2019-06-14

本文共 1281 字,大约阅读时间需要 4 分钟。

一个类有两个方法,其中一个是同步的,另一个是非同步的;

现在又两个线程A和B,请问:当线程A访问此类的同步方法时,线程B是否能访问此类的非同步方法?

答案:可以

验证

package com.my.test2;public class ClassA {    public synchronized void do1()    {        //延迟打印,为了更明显        try {            Thread.sleep(3000);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("synchronized do1");    }        public void do2()    {        System.out.println("do2");    }        }package com.my.test2;public class Thread1 extends Thread{    private ClassA classA;        public Thread1(ClassA classA)    {        this.classA = classA;    }    @Override    public void run() {        classA.do1();    }}package com.my.test2;public class Thread2 extends Thread{    private ClassA classA;        public Thread2(ClassA classA)    {        this.classA = classA;    }    @Override    public void run() {        classA.do2();    }}package com.my.test2;public class Test {    /**     * @param args     */    public static void main(String[] args) {        ClassA classA = new ClassA();        Thread1 thread1 = new Thread1(classA);        Thread2 thread2 = new Thread2(classA);                thread1.start();        thread2.start();    }}

执行结果:

do2

synchronized do1   //延迟3秒后输出

 

转载于:https://www.cnblogs.com/qqzy168/p/3927214.html

你可能感兴趣的文章
测量小助手——典型用户及使用场景
查看>>
wget命令
查看>>
mysql结构和索引原理
查看>>
计算机基础知识
查看>>
java实现Excel表格导出
查看>>
EasyDSS视频点播服务器实现的多码率点播功能的说明
查看>>
TP3.2整合kindeditor
查看>>
第64条:对异步循环使用递归
查看>>
JS实时数据运算
查看>>
UWP学习开发笔记记录(开篇)
查看>>
Qt工程管理
查看>>
openlayer+udig+geowebcache+
查看>>
负载参考
查看>>
影响SQL Server数据库应用性能的几个常见因素
查看>>
2046 ACM 数学
查看>>
Java线程 : 线程同步与锁
查看>>
【BZOJ4827】【HNOI2017】礼物(FFT)
查看>>
【BZOJ5286】[HNOI2018]转盘(线段树)
查看>>
JavaScript基础—插曲
查看>>
sqlserver where in 在 mysql
查看>>