/**
* 同步和非同步方法是否可以同时调用?
* 分析一下这个程序的输出
* @author Forever
*
*/
public class Java_dxc007 {
public synchronized void m1() {
System.out.println(Thread.currentThread().getName()+"m1 start...");
try {
Thread.sleep(10000);
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"m1 end!");
}
public void m2() {
try {
Thread.sleep(5000);
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+ "m2 start...");
}
public static void main(String[] args) {
Java_dxc007 t=new Java_dxc007();
/*
new Thread(()->t.m1(),"t1").start();
new Thread(()->t.m2(),"t2").start();
*/
new Thread(t::m1,"t1").start();
new Thread(t::m2,"t2").start();
/*
new Thread(new Runnable(){
public void run{
t.m1();
}
})
*/
}
}
输出:
t1m1 start...
t2m2 start...
t1m1 end!
总结:
同步和非同步方法是否可以同时调用?
答案:当然是可以的!