`
zsnlovewl
  • 浏览: 172979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

synchronized块及方法应用

    博客分类:
  • JAVA
阅读更多
package test;

class Obj implements Runnable {
	public void fun1() {
		synchronized (this) {
			System.out.println(Thread.currentThread().getName() + "取得锁");
			try {
				System.out.println("fun1()执行");
				Thread.sleep(10000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println(Thread.currentThread().getName() + "解除锁");
		}

	}

	public synchronized void fun2() {
		System.out.println(Thread.currentThread().getName() + "取得锁");
		System.out.println("fun2()执行");
		System.out.println(Thread.currentThread().getName() + "解除锁");
	}

	@Override
	public void run() {
		if (Thread.currentThread().getName().equals("T1")
				|| Thread.currentThread().getName().equals("T3")) {
			fun1();
		} else {
			fun2();
		}
	}

}

public class ThreadSynchronizedTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Obj obj1 = new Obj(), 
			obj2 = new Obj();
		Thread 	T1 = new Thread(obj1), // T1,T2不用线程,相同对象Obj1
				T2 = new Thread(obj1), 
				T3 = new Thread(obj2); // T2,T3不用线程,不同对象Obj1,Obj2
		T1.setName("T1");
		T2.setName("T2");
		T3.setName("T3");
		T1.start();
		T2.start();
		T3.start();
	}

}

 

分享到:
评论

相关推荐

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。...47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可...

    超级有影响力霸气的Java面试题大全文档

    此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),...

    并发编程面试专题.pdf

    2) 在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它? 3)在 java 中 wait 和 sleep 方法的不同? ...

    JDK5中的并发(多线程)

    JVM 已经进行了改进,允许类利用硬件级别支持并发,并且提供了一组丰富的新并发构造块,使开发并发应用程序更加容易。 <br>本教程将介绍 JDK 5.0 提供的用于并发的新实用程序类,并通过与现有并发原语...

    Java-并发(Concurrent)编程

    同步代码块Synchronized及其实现原理 volatile关键字及其实现原理 多线程在JVM中的实现原理 JUC概述 原子类Atomic-CAS及其实现原理 锁Lock-AQS核心原理剖析 并发工具类、并发容器、阻塞队列 线程池原理剖析 线程池...

    java 面试题 总结

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...

    java面试题进阶版附答案.docx

    二、异常处理:介绍了Java中的异常处理机制,包括使用try-catch语句块捕获和处理异常,以及列举了几个常见的异常类。 三、线程同步和互斥锁:解释了线程同步的概念,以及互斥锁的作用,包括使用synchronized关键字...

    JAVA面试题最全集

    写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字...

    java基础题 很全面

    1. JSP的内置对象及方法。 15 2. JSP的常用指令 16 3. Request对象的主要方法: 16 4. jsp有哪些动作?作用分别是什么? 16 5. JSP中动态INCLUDE与静态INCLUDE的区别? 17 6. JSP和Servlet有哪些相同点和不同点,他们...

    【05-面向对象(下)】

    •在java类里只能包含Field,方法,构造器,初始化块,内部类(接口、枚举)等5种成员。 用static修饰的类成员属 于类成员,类Field既可通过类来访问,也可以通过类的对象来访问。当通过对象来访问类属性时,系统会在底...

    涵盖了90%以上的面试题

    Java中的异常处理机制的简单原理和应用。 java socket java序列化 JVM加载class文件的原理 双亲委派模型 为什么要自定义类加载器 如何自定义类加载器 什么是GC 内存泄漏和内存溢出 Java的内存模型(JVM的内存划分) ...

    java面试宝典2012版.pdf

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 53、线程的基本概念、线程的基本状态以及状态之间的关系 54、简述synchronized和java.util.concurrent.locks.Lock的...

    Java问题宝典2012版

    25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 20 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 20 27、内部类可以引用它的包含类的成员吗?有没有什么...

    java基础案例与开发详解案例源码全

    12.5.1 使用synchronized同步块324 12.5.2 使用集合工具类同步化集合类对象324 12.5.3 使用JDK5.0后提供的并发集合类324 12.6 用Timer类调度任务325 12.7 本章练习326 第13章 13.1 java.io.File类328 13.1.1 文件和...

    二十三种设计模式【PDF版】

    而 GoF 的设计模式是在这方面开始探索的一块里程碑。 J2EE 等属于一种框架软件,什么是框架软件?它不同于我们以前接触的 Java API 等,那些属于 Toolkist(工具箱),它不再被动 的被使用,被调用,而是深刻的介入到...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    类、消息、接口、及抽象等概念。 2.2.1 对象 现实世界中的对象具两个特征:状态和行为。例如:自行车有状态(传动装置、步度、 两个车轮和齿轮的数目等)和行为(刹车、加速、减速和换档等)。 其次,我们再...

    最新Java面试宝典pdf版

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    Java面试笔试资料大全

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    Java面试宝典2010版

    10、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 11、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp...

Global site tag (gtag.js) - Google Analytics