多线程解决安全问题的方法(Synchronized)
2014-04-29 16:56
204 查看
使用同步代码块来解决
在实现Runnable接口的类中,定义一个Object obj=new Object();对象
然后在覆盖的run方法中使用同步代码块
Synchronized(obj)
{
//多线程共享数据代码
}
同步的弊端:相对降低了效率,因为同步外的线程要进行判断同步锁,只能一个一个有序的进行
同步的前提:同步中必须多线程并且使用同一个锁
以上是同步代码块 放在run方法中
下面是同步函数
直接将多线程要运行的代码的方法封装起来
public synchronized void show()
{
//多线程数据代码
}
同步函数的锁是固定的this
同步代码块的锁是任意的
一般使用的是同步代码块
静态同步函数的锁
synchronized(Demo.class)
synchronized(this.getClass())//该方法是非静态的,不能放在静态函数里
在实现Runnable接口的类中,定义一个Object obj=new Object();对象
然后在覆盖的run方法中使用同步代码块
Synchronized(obj)
{
//多线程共享数据代码
}
同步的弊端:相对降低了效率,因为同步外的线程要进行判断同步锁,只能一个一个有序的进行
同步的前提:同步中必须多线程并且使用同一个锁
以上是同步代码块 放在run方法中
下面是同步函数
直接将多线程要运行的代码的方法封装起来
public synchronized void show()
{
//多线程数据代码
}
同步函数的锁是固定的this
同步代码块的锁是任意的
一般使用的是同步代码块
静态同步函数的锁
synchronized(Demo.class)
synchronized(this.getClass())//该方法是非静态的,不能放在静态函数里
相关文章推荐
- 多线程安全问题的解决方法
- 并发编程学习笔记二 ------synchronized关键字实现同步访问解决多线程安全问题
- 解决多线程安全问题方法
- 多线程安全问题解决方法二
- JDK1.5 中解决多线程安全问题的方法
- 多线程安全问题的解决方法一
- 多线程(三)——多线程安全问题之同步代码块(Synchronized)
- outlook禁止访问下列带有潜在安全问题的附件的解决方法
- CFileDialog改变文件路径导致的一系列问题(如无法安全删除u盘、访问相对路径失败)的解决方法
- 四种方法解决存储过程中的数据安全问题
- java多线程的等待唤醒机制及如何解决同步过程中的安全问题
- 使用synchronized关键字解决共享数据同步问题:多线程门票销售
- 黑马程序员——多线程——多线程概述,实现,控制与安全问题的解决
- 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法)
- 黑马程序员——java中关于同步函数(或同步代码块)解决多线程安全问题的加锁
- net多线程问题解决方法
- 在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题
- 从头认识多线程-2.14 解决由同步的synchronized (newobject()) 引起的脏读的方法
- Windows操作系统常见安全问题解决方法
- Java多线程技术初识——4. 多线程安全问题的解决