是否有可能从线程并发执行相同的功能。我怀疑在java方法区域中是否相同,因此对同一函数的多次调用可能导致等待状态,我正确吗?

最佳答案

是的,除非您已使用同步,否则没有任何等待锁的可能。这是默认行为,不能交错执行锁定和线程执行。

虽然请记住,您的线程调度程序将允许一个线程在给定的时间运行。

默认情况下,在没有同步的情况下,没有等待的并发访问是行为。

样本演示

public class MyThread implements Runnable {

    private MyThreadInvocation  threadInvocation    = null;

    public MyThread(MyThreadInvocation threadInvocation) {
        this.threadInvocation = threadInvocation;
    }

    @Override
    public void run() {
        System.out.println("Calling from : " + Thread.currentThread().getName());
        this.threadInvocation.printMessage();
    }
}


public class MyThreadInvocation {
    public void printMessage(){
        System.out.println("Hello");
    }

    public static void main(String[] args) {
        MyThreadInvocation myThreadInvocation = new MyThreadInvocation();
        Thread t1 = new Thread(new MyThread(myThreadInvocation));
        t1.setName("First Thread");

        Thread t2 = new Thread(new MyThread(myThreadInvocation));
        t2.setName("Second Thread");

        Thread t3 = new Thread(new MyThread(myThreadInvocation));
        t3.setName("Third Thread");

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

10-08 00:24