java 线程安全 锁

原创 2016年05月30日 10:38:57

两个线程A,B。调用同一加锁代码块C,假如A先调用C,在A线程调用C完成之前,B线程要调用此代码块必须先等待,等A调用完成,B立马执行C.


package test;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import net.sf.json.JSONObject;

import com.hlzt.wx.util.http.WxHttpClientUtils;
import com.hlzt.wx.util.msg_handler.MsgDispatcher;

public class ss {
	
	 public static void main(String[] args) throws UnsupportedEncodingException {
		 ddd d=new ddd("aaaaaaaaaaaaaa");
		 d.start();
		 ddd d2=new ddd("bbbbbbbbbbbbbb");
		 d2.start();
		 
			
	}
	 
	 public synchronized static void aa(String str)
		{
			System.out.println("1#########"+str);
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			System.out.println("2#########"+str);
			
		}
	
}


class ddd  extends Thread{
	private String aaa;
	
	
	
	public ddd(String aaa) {
		this.aaa = aaa;
	}

	@Override
	public void run() {
		ss.aa(aaa);
	}
	

}


版权声明:GOOD DEEP

深入理解java虚拟机-读书笔记8-线程安全与锁优化

线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对...

《深入理解Java虚拟机》读书笔记7——线程安全与锁优化

Brian Goetz对线程安全的定义:当多个线程访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调度方进行任何其他的协调操作,调用这个对象的行为都可以...

深入理解 Java 虚拟机--线程安全与锁优化

深入理解 Java 虚拟机--线程安全与锁优化

java线程安全与死锁

线程 安全问题的解决方案:sun提供了线程同步机制让我们解决这类问题的。 出现线程安全问题的根本原因: 1. 存在两个或者两个以上 的线程对象,而且线程之间共享着一个资源。 2. 有多个语句操作了共...
  • oguro
  • oguro
  • 2016年11月24日 20:10
  • 691

java并发编程(二内存模型、线程安全、无锁)

java并发编程(二内存模型、线程安全、无锁) 内存模型 原子性 原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就 不会被其它线程干扰。 (1) 在单...

java线程安全之——可重入锁

作者:山鸡锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体...

java中的线程安全与锁优化

Java的线程是映射到操作系统的原生线程之上的,如果要阻塞或唤醒一条线程,都需要操作系统来帮忙完成,这就需要操作系统来帮忙完成,需要从用户态转换到内核态中,状态转换需要耗费很多的处理器时间。如果是非常...
  • clamaa
  • clamaa
  • 2017年04月11日 10:03
  • 200

java线程安全篇之synchronized 多个线程多个锁(二)

java线程安全篇之synchronized 多个线程多个锁(二)

深入理解Java虚拟机----(十一)线程安全与锁优化

线程安全     为了深入讨论,不把线程安全当做非真即假的概念,我们把它分为5个层次。 不可变:不可变的数据是线程安全的。例如前面提到的final,被final修饰的基础数据类型,被正确构...

java 线程六-解决线程安全隐患问题-加锁

需求: 银行有一个金库 有两个储户分别存300元,每次存100,共存三次。 目的:判断该程序是否有安全问题,如果有该怎么解决? 如何找出安全隐患? 1,明确哪些代码是多线程运行代码。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 线程安全 锁
举报原因:
原因补充:

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