
多线程
文章平均质量分 51
lwwgtm
这个作者很懒,什么都没留下…
展开
-
java并发编程实践第二遍笔记(二)20171017
对象的共享如何共享和发布对象,使他们能够安全地由多个线程同时访问。 synchronized 可以保证可见性和原子性。 内存的重排序只能保证在单线程中不出问题,在多线程中不能保证。 重排序:在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些调整。 最低安全性在大多数情况下能得到保证,但是存在一个例外:非valatile类型的64位数值变量(double,long)。原创 2017-10-17 23:24:12 · 399 阅读 · 0 评论 -
java并发编程实践第二遍笔记(-)
一、简介java多线程的问题:线程安全问题,活跃性问题(多线程死锁,单线程无限循环),性能问题(主要是频繁的切换上线文的开销)多线程无处不在,servlet RMI。二、线程安全性修复线程安全问题的方式: 不在线程之间共享该状态变量。 将状态变量修改为不可变的变量。 在访问状态变量时使用同步。尽量编写可维护性高的类。为了保证类的线程安全最好要把同步机制封装在类内部。无状态的类:既不包含任原创 2017-10-14 22:20:57 · 454 阅读 · 0 评论 -
多线程基本概念
竞争条件:多个任务并发访问和操作同一数据且执行结果与访问的特定顺序有关,称为竞争条件。(多个任务竞争响应某个条件,因访问顺序不同产生冲突或不一致的情况)。比如“检查再运行”“惰性初始化”。 原子操作:不能被打断的一系列操作。 复合操作:可以被打断的一系列操作。 不变约束(不变性约束):不变式表达了对状态的约束,这些状态应该符合这个约束值的组合。不变式可以代表某些业务规则。比如《java并发编程原创 2017-10-22 19:03:22 · 475 阅读 · 0 评论 -
java并发编程实践第二遍笔记(三)20171021
对象的组合浅紫色为自己跟作者的一些不同看法设计线程安全的类: 虽然可以将程序的所有状态都保存在共有的静态域中,但是与那些将状态封装起来的程序相比,这些程序的线程安全性更难以得到验证,并且在修改时也更难以确保其线程安全性。通过使用封装技术,可以使得在不对整个程序进行分析的情况下就可以判断一个类是否线程安全的。 不同看法 不光是共有的静态域,即时共有的非静态域也会有同样的问题,只不过引起问题的范围原创 2017-10-23 09:03:02 · 528 阅读 · 0 评论