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 虚拟机--线程安全与锁优化

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

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

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

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

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

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

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

java线程安全与死锁

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

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

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

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

需求: 银行有一个金库 有两个储户分别存300元,每次存100,共存三次。 目的:判断该程序是否有安全问题,如果有该怎么解决? 如何找出安全隐患? 1,明确哪些代码是多线程运行代码。...

JAVA-15-多线程的调度和控制、线程安全、死锁、等待和唤醒

本节我们开始讲解多线程: 1: 多线程的概念   (1)线程是依赖于进程而存在的。     A:进程 正在运行的应用程序     B:线程 进程的执行路径,执行单元      ...

java多线程学习之通过synchronized加锁解决线程安全问题

商品类package learn.thread;public class Commodity { public static int cNum = 5; // 购买并返回剩余数 ...

JAVA拾遗 - 线程安全之隐式锁

线程安全当多个线程同时操作一个数据结构的时候,可能会发生一些奇妙的情况(比如相互串行或者相互修改),这种情况发生后就无法保证数据的一致性,这也是不安全的线程,为了保证数据的一致性,我们在这里讨论线程安...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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