java多线程问题总结

原创 2016年08月29日 19:30:50
1、synchronized关键字修饰的同步函数使用什么对象作为锁?

分为两种情况,如果该函数为静态的则采用所在类的class锁,否则采用this锁,测试用例如下:

class test{
	public synchronized void f1() throws InterruptedException{  
		System.out.println("进入f1");
		Thread.sleep(5000);
		System.out.println("离开f1");
	}
	
	public void f2(){
	      synchronized (this){
		System.out.println("进入f2");
	      }
	}
}

public class thread{
       public static void main(String[] args) throws InterruptedException {
       test t=new test();   
       Thread t1=new Thread(new Runnable() {
		  @Override
		  public void run() {
			t.f1();
		  }
	    });

       Thread t2=new Thread(new Runnable() {
		 @Override
		 public void run() {
			t.f2();
		 }
	   });
       
       t1.start();
       t2.start();
   } 
}
输出结果:
进入f1
离开f1
进入f2
我们可以看到,只有当线程t1释放锁后,线程t2才能进入f2,说明同步方法和同步代码块采用的是同一个this锁,class锁的测试则给f1添加static关键字,f2使用test.class锁。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

40个Java多线程问题总结

From:http://www.cnblogs.com/xrq730/p/5060921.html 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么...

Java多线程问题总结

Java多线程问题

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

40多个Java多线程问题的原创总结

学习JavaWeb多线程是十分重要的一块,前两天网易笔试就问到了乐观锁,悲观锁,自旋锁甚至是一道大题! 多线程的文章很多,但这篇文章原创者的态度值得我学习,他写道“我不能保证写的每个地方都是对的,但是...

40个Java多线程问题总结

前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问...

Java多线程问题总结

这篇博客是在看了微信公众号给我推送的一篇博客之后,然后根据自己的理解做的一个总结,也可以说是在别的blog的一个再总结: 参考博客:http://www.cnblogs.com/xrq730/p...

Java多线程问题总结

这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都...

40个Java多线程问题总结

40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然",...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)