序文

如果你没有时间阅读这本,那你就来对地方了。小编会将每一章刨去废话,取其精华。分享给大家。如果觉得可以请不要忘了关注小编。我会定期跟新java 中的经典书籍。

正文

第一部分总结:

1.所有的并发问题都可以归结为如何协调对并发状态的访问,可变状态越少,越容易确保线程安全。

2.尽量将属性声明为final类型,除非它们是可变的。

3.不可变对象一定是线程安全的。

  • 不可变对象能极大地降低鬓发编程的复杂性。它们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制。(只对这个对象操作的时候,如果是复合操作另作考虑)

4.封装有助于管理复杂性。

  • 将数据封装在对象中,更容易维持不变性条件。(封装的不好就会发布逸出,别人就想怎么改怎么改,麻烦大了)

5.用锁保护每个可变的共享变量。

6.当保护同一个不变性条件中的所有变量时,要使用同一个锁。

7.在执行复合操作期间,要持有锁。

8.如果从过个线程中访问同一个可变变量时没有使用同步锁,(不是原子变量)那么线程就会出现问题。

9.不要存在侥幸心理,我这次执行没有出现线程问题,就不用同步。

10.再设计过程中要考虑线程安全,要文档化。(便于后面的人知道)

11.当只有一个共享变量的时候,推荐使用原子变量。

12.当一个变量只有一个线程修改,其他线程要保证可见性,就可以使用volited 声明变量。

c++核心编程第一部分讲义_java并发编程实战-第一部分总结相关推荐

  1. lingo编程的主要方法_java并发编程 --并发问题的根源及主要解决方法

    并发问题的根源在哪 首先,我们要知道并发要解决的是什么问题?并发要解决的是单进程情况下硬件资源无法充分利用的问题.而造成这一问题的主要原因是CPU-内存-磁盘三者之间速度差异实在太大.如果将CPU的速 ...

  2. java并发编程实践 读书笔记_Java - 并发编程实践(读书笔记)

    [注] 同步机制保证:1)原子性 2)内存可见性: Volatile变量只能保证:1)可见性: - 恰当的同步,同步的弱形式,确保对一个变量的更新以可预见的方式告知其他线程. [注] 用锁来协调访问变 ...

  3. java语言中 负责并发编程的机制是_Java并发编程艺术-并发机制的底层原理实现...

    Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量. volatile借助Java内存模型保证所有线程能够看到最新的值.(内存可见性) ...

  4. java的尝试性问题_Java并发编程实战 03互斥锁 解决原子性问题

    文章系列 摘要 在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,那么还有一个原子性问题咱们还没解决.在第一篇文章01并发编程的Bug源头当中,讲到了把一个或者多 ...

  5. java虚拟机线程调优与底层原理分析_Java并发编程——多线程的底层原理

    " Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和 CPU的 ...

  6. Java并发编程的艺术,解读并发编程的优缺点

    并发编程的优缺点 使用并发的原因 多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升. 在特殊的业务场景下先天的就适合于并发编程. 比如在 ...

  7. Java并发编程(一):并发编程的挑战

    Java并发编程(一): 并发编程的挑战 本文主要内容出自<Java并发编程的艺术>一书,是对该书内容的归纳和理解,有兴趣的朋友请购买正版阅读全部内容. 并发编程的目的是为了让程序运行的更 ...

  8. java并发数据共享机制_Java并发编程:核心理论之数据共享性

    原标题:Java并发编程:核心理论之数据共享性 并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能.它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰.思维缜密,这 ...

  9. 判断线程是否执行完毕_Java并发编程 | 线程核心机制,基础概念扩展

    源码地址:GitHub || GitEE 一.线程基本机制 1.概念描述 并发编程的特点是:可以将程序划分为多个分离且独立运行的任务,通过线程来驱动这些独立的任务执行,从而提升整体的效率.下面提供一个 ...

  10. java并发编程实践_Java并发编程实践如何正确使用Unsafe

    一.前言 Java 并发编程实践中的话: 编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各 ...

最新文章

  1. php对象当参数传递 php深复制和浅复制
  2. 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题
  3. 《About Multi-Touch(多点触摸是个什么东西?)》:基于光学原理的多点触摸技术全解析...
  4. 送给程序员:IT大神们的编程名言
  5. Hyper-V 嵌套虚拟化
  6. android 瀑布流_软件工程过程模型之瀑布模型
  7. 专业词汇---BUG部分-02
  8. ML、DL、CNN学习记录3
  9. 关于C#窗体程序dataGridView控件的用法
  10. idea教育版增加springboot插件
  11. vs 2017官网下载、QT下载
  12. CCAI2018 | 韩家炜:大规模文本数据挖掘的新方向
  13. mdpi Algorithms 期刊word 模板下载
  14. mysql创建book表_【mysql】表的创建以及基本操作
  15. 依图科技暑期实习生面试经验
  16. html中的注释格式是,html的注释格式是什么
  17. (文末福利)如果代码莫名其妙跑起来了,就不要去动它了……吗?
  18. JBAS011232: Only one JAX-RS Application Class allowed. com.sun.jersey
  19. Android开发之Retrofit结合HttpLoggingInterceptor打印网络日志的方法
  20. 网站翻滚图片代码html,网页滚动图片滚动特效解析

热门文章

  1. Windows 10搜集的用户隐私数据全部在此
  2. 一个想法照进现实-《IT连》创业项目:三天的风投对接活动内幕分享
  3. PHP项目性能优化-总览
  4. SQL 如何将视图转换成表
  5. 你能给我的手机推荐一款安全软件吗?
  6. 自娱自乐的小题目(6)
  7. 持久化消息队列memcacheq的安装配置
  8. Android Studio Template(模板)开发,最后有参考
  9. 记录:Linux 设置文件夹 0777 权限失效问题
  10. Thinkphp 生成数据表字段缓存