在多线程环境中从另一个同步方法同步的影响?

时间:2017-10-26 14:37:43

标签: java multithreading synchronization wait

我正在使用同步线程,其中我有三个synchronized方法,每个方法将由单个线程访问(当前程序中共有3个线程)

在我们的程序中,我们调用一个syn方法调用另一个同步方法,下面是示例代码,它受到实际应用的启发:

public class ThreadTest {

    public static synchronized void suncMessage() {
        System.out.print("1");
    }

    public static synchronized void suncMessage2() {
        suncMessage();
        System.out.print("2");
    }

    public static synchronized void suncMessage3(String s) {
        System.out.print("3m" + s);
    }

    public static void main(String... at) throws InterruptedException {
        Thread t1 = new Thread() {

            public void run() {
                for (int i = 0; i <= 2; i++) {
                    suncMessage();
                }
            }
        };

        Thread t2 = new Thread() {

            public void run() {
                for (int i = 0; i <= 2; i++) {
                    suncMessage2();
                }
            }
        };

        Thread t3 = new Thread() {

            public void run() {
                for (int i = 0; i <= 2; i++) {
                    suncMessage3("3");
                }
            }
        };

        t1.start();
        t2.start();
        t3.start();
    }
}

所以我的问题是,调用一个同步的影响是什么。来自另一个同步的方法。??是好的做法以及它将如何影响计划的复杂性?

1 个答案:

答案 0 :(得分:1)

不错的问题,但是当你在处理这种类型的场景时你必须努力并且性能可能会有效。因为同步比普通方法慢约50 时间。