当前位置:测试分享

Java并发编程——存储模型
测试开发

Java并发编程——存储模型

2838 tester

存储模型明确地规定了在什么时机下,操作存储的线程的动作可以保证被另外的动作看到。规范还规定了要保证操作是按照一种偏序关系进行排序。这种关系称为happens-before,它是规定在独立存储器和同步操作级别之上的。1、happens-before的法则包括…

Java并发编程——避免活跃度危险
测试开发

Java并发编程——避免活跃度危险

2870 tester

安全性和活跃度通常相互牵制。滥用锁可能引起锁顺序死锁或资源死锁。java应用程序不能从死锁中恢复。1、死锁数据库系统设计针对了监测死锁,以及从死锁中恢复。在事务中选择一个牺牲者,使其他事务能够继续进行。如果所有线程以通用的固定…

Java并发编程——线程池
测试开发

Java并发编程——线程池

2921 tester

1、任务与执行策略间的隐性耦合一些任务具有这样的特征:需要或者排斥某种特定的执行策略。对其他任务具有依赖性的任务,就会要求线程池足够大,来保证它锁依赖任务不必排队或者不被拒绝;采用线程限制的任务需要顺序的执行。把这些需求都写入文…

Java并发编程——取消和关闭
测试开发

Java并发编程——取消和关闭

3798 tester

1、任务取消调用interrupt并不意味着必然停止目标线程正在进行的工作;它仅仅传递了请求中断的消息。静态的interrupt应该小心使用,因为它会清除并发线程的中断状态。中断是实现取消最明智的选择。classPrimeProducerextendsThr…

Java并发编程——任务执行
测试开发

Java并发编程——任务执行

2676 tester

1、在线程中执行任务围绕执行任务来管理应用程序时,第一步指明一个清晰的任务边界。在正常的负载下,服务器应用程序应该兼具良好的吞吐量和快速的响应性。在中等强度的负载水平下,“每任务每线程”方法是对顺序化执行的良好改进。只要请求…

Java并发编程——构建块
测试开发

Java并发编程——构建块

2718 tester

1、同步容器同步容器类包括两部分,一个是Vector和Hashtable;另一个是他们的同系容器,同步包装(wrapper)类。同步容器都是线程安全的。正如封装一个对象的状态,能够使它更加容易地保持不变约束一样,封装它的同步则可以迫使它符合同步策略…

Java并发编程——组合对象
测试开发

Java并发编程——组合对象

2414 tester

1、设计线程安全的类设计线程安全类的过程应该包括下面3个基本要素:1)确定对象状态是由哪些变量构成的;2)确定限制状态变量的不变约束;3)制定一个管理并发访问对象状态的策略。不理解对象的不变约束和后验条件,你就不能保证线程…

Java并发编程——共享对象
测试开发

Java并发编程——共享对象

2663 tester

1、可见性只要数据需要被跨线程共享,就进行恰当的同步。一个线程在没有同步的情况下读取变量,它可能会得到一个过期值。但它至少可以看到某个线程在那里设置的一个真实数值,而不是一个凭空而来的值。这样的安全保证被称为是最低限的安全性。…

Java并发编程——线程安全
测试开发

Java并发编程——线程安全

4134 tester

活跃度失败:当一个活动进入某种它无法再继续执行的状态时,活跃度失败就发生了。(如死循环、死锁、饥饿、活锁等)1、线程安全一个对象是否应该是线程安全的取决于它是否会被多个线程访问。无论何时,只要有多于一个的线程访问给定的状态变…

每日构建和冒烟测试
软件测试

每日构建和冒烟测试

3239 irene

这个过程就是,每天把所有代码文件编译、链接、组成一个可执行程序,然后对这个程序进行冒烟测试,也就是一个相对简单的检查,看一看这个程序是否能够体现出程序正常运行所能体现的一些最基本的正常表象。这样做的好处是:最小化了集成阶段的…