synchronized是解决多线程中同步问题的一个关键字
2010-01-17 15:01
465 查看
synchronized是解决多线程中同步问题的一个关键字。比如火车站卖票,如果不同步的话,很可能当一个窗口卖完了某一张票后,另一个窗口依然显示有那张票,但是取的时候就取不到了。加入synchronized后当一个窗口访问这张票的时候另一个窗口不能访问这张票。不知道这样解释你懂不懂?
下面是singleton:
public class Singleton {
private Singleton s;
private Singleton()
{
}
public static Singleton getSigleton()
{
if(s==null)s=new Singleton();
return s;
}
}
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
上面的程序就是一个单例模式,这个类的构造方法用private修饰了,所有在外边都不能调用,也就不能new Singleton();得到实例,那么
想得到实例就得调用它的静态方法getSigleton();即Singleton.getSigleton();就会返回一个Singleton的实例,注意此方法中的语句,即如果你是第一次调用这个方法那么它会给你new一个实例,以后再调用得到的都是这个实例,也就是说从始至终就只有一个Singleton的实例,这就是单例模式。
下面是singleton:
public class Singleton {
private Singleton s;
private Singleton()
{
}
public static Singleton getSigleton()
{
if(s==null)s=new Singleton();
return s;
}
}
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
上面的程序就是一个单例模式,这个类的构造方法用private修饰了,所有在外边都不能调用,也就不能new Singleton();得到实例,那么
想得到实例就得调用它的静态方法getSigleton();即Singleton.getSigleton();就会返回一个Singleton的实例,注意此方法中的语句,即如果你是第一次调用这个方法那么它会给你new一个实例,以后再调用得到的都是这个实例,也就是说从始至终就只有一个Singleton的实例,这就是单例模式。
相关文章推荐
- 并发编程学习笔记二 ------synchronized关键字实现同步访问解决多线程安全问题
- 使用synchronized关键字解决共享数据同步问题:多线程门票销售
- 记录Java多线程的同步问题---synchronized关键字的使用
- 在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题
- synchronized解决多线程共享数据同步问题
- 初学Java多线程:使用Synchronized关键字同步类方法
- Delphi中多线程用Synchronize实现VCL数据同步显示 解决在线程中操作控件出现问题
- synchronized——Java多线程的同步问题
- Java的多线程之同步篇二:synchronized关键字
- php中,高并发状态下文件的读写 (解决多线程同时读写一个文件的问题)
- 通过接口解决多线程下的数据同步问题
- java多线程学习笔记(三) ——多线程实例火车票问题+同步synchronized初接触
- Windows多线程学习(三)多线程互斥同步 event解决同步问题 上篇是解决子线程互斥问题
- JQuery ajax 如何设置同步调用(同时只能触发一个函数) 解决与层显示信息时候的冲突问题
- 【Java】同步关键字就解决哲学家吃饭问题
- 一个S2S通信中的同步、异步问题的解决
- Java多线程之生产者消费者问题<一>:使用synchronized 关键字解决生产者消费者问题
- 同步代码快:解决多线程安全问题
- 解决firefox一个邮箱两个账户导致收藏夹不同步的问题
- 多线程的一个问题(同步事件和等待句柄)转