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锁。


相关文章推荐

用java多线程做的银行汇款问题

  • 2012年03月23日 12:51
  • 2KB
  • 下载

40个Java多线程问题总结

40个Java多线程问题总结   前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学...

Java程序员面试中的多线程问题

  • 2012年07月08日 15:04
  • 250KB
  • 下载

40个Java多线程问题总结

前言 个人认为,学习内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题...

40个Java多线程问题总结

http://www.codeceo.com/article/40-java-thread-problems.html 前言 java多线程分类中写了21篇多线程的文章,21篇文章的内...

40个Java多线程问题总结

来源:五月的仓颉 前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章...
  • baokx
  • baokx
  • 2015年12月23日 10:43
  • 311

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

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

40个Java多线程问题总结

这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。...

java多线程问题总结

Java多线程是什么 Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级。依我的理解,Java多线程完...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java多线程问题总结
举报原因:
原因补充:

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