Synchronized使用心得

原创 2004年06月23日 12:35:00

synchronized关键字修饰方法后,程序将根据调用此方法的对象的锁来判断是否能调用此方法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

对一个类的instance method,则当此方法被一个线程调用时,其他线程不能再通过同一个对象调用此方法(可以通过这个类的另一个对象来调用这个方法)。

 

对一个类的static method,则当一个线程通过类对象调用此方法时,其他线程不能再通过类对象调用此方法。由于类对象在类加载时由虚拟机创建,只有一个,所以同一时刻此方法只能被一个线程调用。

 

servlet程序中,容器只实例化一个servlet对象,多个用户访问的是同一个servlet对象,因此对servlet的方法加同步修饰,可以防止多个用户同时调用一个方法,避免共享冲突。

 

创建多线程程序时,在子线程中通过一个对象调用一个类的instance方法时,应该在主线程创建这个对象,将对象的引用通过子线程的构造函数或其他接口方法传入子线程,供子线程使用。

 

Synchronized使用心得

用synchronized关键字修饰方法后,程序将根据调用此方法的对象的锁来判断是否能调用此方法。 对一个类的instance method,则当此方法被一个线程调用时,其他线程不能再通过同一个对象调...
  • zengbo0710
  • zengbo0710
  • 2007年04月23日 16:06
  • 378

synchronized的用法与注意事项

synchronized关键字在java多线程编程过程中非常的有用,不过在编程过程中由于对synchronized的理解不足,也会有很多坑。 synchronized(object)是最常用...
  • zfy1355
  • zfy1355
  • 2016年03月03日 13:21
  • 757

使用synchronized需要注意的一个问题

说到synchronized这个关键字,大伙第一时间想到的,可能就是:当资源共享时,访问(修改)该资源的所有方法都要加上锁(synchronized),才能保证数据不会出错(数据不一致); Java提...
  • JimmyLincole
  • JimmyLincole
  • 2013年12月07日 23:49
  • 2465

关于多线程中synchronized的使用位置

在练习多线程之售票的时候,对于synchronized的使用有些困惑,因为我是用以下代码: public class ThreadDemo5 { /** * @param args */ ...
  • rockpk008
  • rockpk008
  • 2016年12月23日 23:02
  • 396

java 多线程 终结任务 关于I/O和synchronized

import java.io.IOException; import java.io.InputStream; import java.sql.Date; import java.util.concu...
  • liang_henry
  • liang_henry
  • 2016年12月15日 11:03
  • 502

什么时候该用synchronized

由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。由于我们可以通过 pr...
  • lujar
  • lujar
  • 2007年07月13日 23:48
  • 758

Transactional注解下使用synchronized有坑

Transactional注解下使用synchronized有坑
  • sunjigen803
  • sunjigen803
  • 2016年09月18日 18:23
  • 870

可能忽略的Java基础知识-小心使用synchronized和volatile

基本概念1.并发编程需要理解几个特性: (1)原子性:不会被打断或破坏的一个或一组操作,原子操作是不能被线程调度机制中断的操作 (2)可见性:写操作对所有的读操作都是立即可见的,例如一个线程中对变...
  • w7849516230
  • w7849516230
  • 2016年05月14日 16:52
  • 2167

怎样在静态方法中使用 synchronized

synchronized 的实现方式synchronized 的类型可以分为两种: synchronized method synchronized block 两者的实现方式是不一样的,jvm 规范...
  • FeeLang
  • FeeLang
  • 2015年11月09日 17:53
  • 4568

java线程 wait notify notifyAll必须在 synchronized中调用

//wait是释放锁,notify是唤醒其他调(用wait等待)的一个线程,不包括自己,notifyAll是唤醒所有线程包括自己 public class Notify implements...
  • u013378306
  • u013378306
  • 2015年05月21日 22:26
  • 876
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Synchronized使用心得
举报原因:
原因补充:

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