是否有可能从线程并发执行相同的功能。我怀疑在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();
}
}