- 线程同步,要确保业务完整性(原子性),多个方法都要使用synchronized,否则会出现脏读问题
demo:
package com.zan; /** * 保持业务整体完整,都要使用synchronized,来确保原子性 */ public class DirtyRead { private String username = "lisi"; private String password = "123456"; public synchronized void setValue(String username, String password){ this.username = username; try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.password = password; System.out.println("setValue的值username = " + username + " , password = " + password); } //加synchronized ,确保在设值过程中,不会出现脏读。即要设值后才能去读 public synchronized void getValue(){ System.out.println("getValue的值username = " + this.username + " , password = " + this.password); } public static void main(String[] args) throws Exception{ final DirtyRead dr = new DirtyRead(); Thread t1 = new Thread(new Runnable() { @Override public void run() { dr.setValue("wangwu", "new123456"); } }); t1.start(); Thread.sleep(1000); dr.getValue(); } }
相关推荐
d: 经典线程同步互斥问题 e: 使用关键段解决子线程互斥问题 f: 利用事件实现线程同步问题 g: 利用互斥量来解决线程同步互斥问题 h: problem1 生产者消费者问题 (1生产者 1消费者 1缓冲区) problem1 more ...
多线程同步解决卖票问题
MFC 多线程及线程同步 MFC 多线程及线程同步 MFC 多线程及线程同步
java线程同步java线程同步java线程同步
线程同步线程同步线程同步线程同步线程同步C#代码
C#线程同步的几种方法 C#线程同步的几种方法
3. 读写锁是“读模式加锁”时, 既有试图以写模式加锁的线程,也有试图以读模式加锁的线程。那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高 读写锁也叫共享-独占锁。当...
多线程中的同步问题的几种解决方案,新手可以看看。主要通过临界区线程同步,互斥内核对象、事件内核对象,信号量内核对象来实现线程同步问题。
介绍了linux线程同步的所有方式,包括互斥、自旋、信号量、条件变量等技术
我也初学者,线程同步问题,对线程同步问题的的一些笔记
1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。 1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。
.NET多线程同步方法详解(一):自由锁(InterLocked) 本文主要描述在C#中线程同步的方法。线程的基本概念网上资料也很多就不再赘述了。直接接入主题,在多线程开发的应用中,线程同步是不可避免的。在.Net框架中,...
多线程不同步读写共享资源 文章配套代码 我在很早的时候就听说多线程不同步是可以...写线程判断条件 if(下一个指针==读线程指针) 其实这就是一简单的生产者与消费者问题。 以下是实现方法 共享资源 我使用循环缓冲区
delphi中线程同步问题,希望能给你带来学习上的帮助
简单学习用例,利用线程锁对线程同步进行控制,保证对公共资源的访问不出现错误!
作系统常见的进程或线程同步问题,仅供参考1
本文件为操作系统中的线程同步实验的实验报告,有详细的代码和解释。
通过模拟公交车运行时,司机,售票员以及乘客之间的同步状态来实现线程同步
本实例写了一个多线程,从中您可以学到线程创建,线程同步,等基本知识。
线程同步的四种方法的代码。事件 互斥量 信号量 临界区