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

本文共 1230 字,大约阅读时间需要 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秒后输出

 

转载地址:http://yqdta.baihongyu.com/

你可能感兴趣的文章
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>
rpmfusion 的国内大学 NEU 源配置
查看>>
spring jpa 配置详解
查看>>
IOE,为什么去IOE?
查看>>
Storm中的Worker
查看>>