文档章节

Java并发理论简介

m
 modprobe
发布于 2016/11/08 09:57
字数 673
阅读 10
收藏 0

这些文字来自于Java程序员修炼之道,记录一下

 

一、 java线程模型

Java线程模型建立在两个基本概念之上

  • 共享的,默认可见的可变状态
  • 抢占式线程调度

我们从侧面思考一下这两个概念

  • 所有线程可以很容易地功效统一进程中的对象
  • 能够引用这些对象的任何线程都可以修改这些对象
  • 线程调度程序差不多任何时候都能在核心上调入或调出线程
  • 必须能调出运行时的方法,否则无限循环方法会一直占用CPU
  • 为了保护脆弱的数据,对象可以被锁住

二、设计理念

  • 安全性(并发类型安全性)
  • 活跃性
  • 性能
  • 重用性

  1、安全性与并发类型安全性

   安全性是指不管同时发生多少操作都能确保对象保持自相一致。如果一个对象系统具备这一特性,那它就是并发类型安全的。

  保证安全:

    保证安全的策略之一就是处于非一致状态时绝不能从非私有方法中返回,也绝不能调用任何非私有方法,而且也绝不能调用其他任何对象中的方法。如果把这个策略跟某种对非一致对象的保护方法(比如同步锁或临界区)结合起来,就可以保证系统是安全的(不大理解)

  2、活跃度

  在一个活跃的系统中,所有做出尝试的活动最终或者取得进展,或者失败

 

三、原则互相冲突

  设计原则经常相互对立

  • 安全性与活跃性相互对立---安全性确保坏事不会发生,活跃度要求见到进展
  • 可重用性的系统倾向于对外开放其内核,可这会引发安全问题
  • 一旦安全但编写方式幼稚的系统性能通常都不会太好,因为里面会用大量的锁来保证安全性
 
    最终应该尽量让代码达到一种平衡状态
  • 尽可能限制子系统之间的通信。隐藏数据对安全性非常有帮助
  • 尽可能保证子系统内部结构的确定性。比如说,即便子系统会以并发的、非确定性的方式进行交互,子系统内部的设计也应该参照线程和对象的静态知识
  • 采用客户端应用必须遵守的策略方针
  • 在文档中记录所要求的行为
 

本文转载自:http://www.cnblogs.com/modprobe/p/4876942.html

共有 人打赏支持
m
粉丝 1
博文 35
码字总数 0
作品 0
从Java小白到架构师必须要看的书籍,真正的“武林秘籍”!

少年,我看你骨骼精奇,将是未来万中无一的IT精英,很是适合学JAVA。维护世界和平就看你的了,我这里有能让你成为IT精英的办法!还不来看看! 基础类 1、《Thinking in Java》,入门第一位是...

启示录是真的
05/25
0
0
Java开发学习之三版本简介 java编程

  Java编程语言,在更迭迅速的互联网领域多年屹立不倒,足以得见Java这门语言旺盛的生命力,因此,会有很多想要进入互联网领域的朋友,想要学Java来转行开发。但是,所谓“隔行如隔山”,j...

老男孩Linux培训
06/05
0
0
【Java并发专题】27篇文章详细总结Java并发基础知识

努力的意义,就是,在以后的日子里,放眼望去全是自己喜欢的人和事! github:https://github.com/CL0610/Java-concurrency,欢迎题issue和Pull request。所有的文档都是自己亲自码的,如果觉...

你听___
05/06
0
0
JAVA线程8 - ThreadLocal

一、ThreadLocal简介 ThreadLocal并不是一个Thread,而是Thread的局部变量。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立...

小米米儿小
2014/02/26
0
0
Java ThreadLocal的用法解析

简介 java中经常使用ThreadLocal作为处理高并发访问的可选手段,ThreadLocal并不是一个线程,而是”以线程为作用域“的一种面向对象的数据结构。其用法的也有着让人难以理解的怪异性。 代码实...

IamOkay
2014/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中的移位运算符

国庆给自己放了个小长期二十几天,回来继续更新专栏 上一篇文章我们说了Java里的二进制,知道了计算机是以0和1来处理数据的,在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号...

SuShine
21分钟前
2
0
linux版QQ

下载地址在这 http://yun.tzmm.com.cn/index.php/s/XRbfi6aOIjv5gwj Appimage包不用做什么别的处理,安装啥的都不需要。。找到文件所在目录,终端中修改一下文件的权限 chmod 777 QQ-2017112...

悲催的古灵武士
27分钟前
1
0
咕泡-MyBatis 实用篇作业

1. Mapper在spring管理下其实是单例,为什么可以是一个单例? 首先,mapper 内部不包含 成员字段,无状态单例是安全的 另外,一直存在不用每次调用都new 一个新实例 2. MyBatis在Spring集成下...

职业搬砖20年
30分钟前
2
0
MQTT协议的初浅认识之连接建立

MQTT百科 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布...

亚林瓜子
46分钟前
1
0
OpenStack部署都有哪些方式

对于每一个刚接触到OpenStack的新人而言,安装无疑是最困难的,同时这也客观上提高了大家学习OpenStack云计算的技术门槛。想一想,自己3年前网上偶然接触到OpenStack时,一头茫然,手动搭建一...

tututu_jiang
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部