java高并发架构设计原理:java的内存模型,volatile和线程数据安全

最近工作上需要使用java完成高并发的服务器后台设计,因此对此作了一些研究,于是想把研究的心得,总结,经验写出来与大家分享,顺便巩固自己的认知。java通常用来开发大型网站,特别是用来开发应对高并发的后台服务器,例如淘宝就是依赖java后台来满足每天面临的海量数据请求。

java在应对高并发上形成了一系列成熟的设计思想以及应用框架,掌握这些知识能大大扩宽一个技术人员的择业范围和技术实力,在未来十年内,在处理海量数据请求和高并发需求上,java的统治地位不会有太大的动摇。

掌握高并发海量数据处理的技术能力会使你在市场上非常吃香,如果你找后台开发的职位,你会发现“高并发”,“海量数据处理”几乎都是这类职位的必备要求。高并发的处理本质上来说,就是把海量请求分发到足够多的服务器集群上,也就是采用分而治之的原则,“海量请求”经过足够密度的切割后,所得的每一小块数量没那么大,并且服务器的处理能力又足够强,那么应对高并发情景自然没有太大问题。

由此“并行计算”就是处理高并发的核心所在。然而并行计算本身需要处理的技术问题也足够复杂,这次我们看一个常见棘手问题,那就是信息共享问题。假设我们在服务器上有多个线程并行处理数据或请求,线程的运行逻辑受到一系列共享变量的影响,假设线程A,B同时需要读取变量C,A,B可能运行在不同的处理器上,C可能存储在另一台机器上,线程A更改了C的值后,我们如何确保线程B能读取到C最新的最新值?这个不是一个简单容易处理的问题, 我们先先看一个例子:


public class java_model implements Runnable{
	private  String str;
	  void setStr(String str) {this.str = str;}

	  public void run() {
	    while (str == null);
	    System.out.println(str);
	  }

	  public static void main(String[] args) throws InterruptedException {
		  java_model delay = new java_model();
	    n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值