多线程程序设计学习(14)多线程锁机制

  1.对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性(一个对象一个wait set室)

    2.在同步静态方法上的锁,和 实例方法上的锁,默认不是同样的,如果同步需要制定两把锁一样(同步静态方法的锁为当前类的对象,该实例的锁)。

    3.关于同一个类的方法上的锁,来自于调用该方法的对象,如果调用该方法的对象是相同的,那么锁必然相同,否则就不相同。比如 new A().x() 和 new A().x(),对象不同,锁不同,如果A的单利的,就能互斥。

    4.静态方法加锁,能和所有其他静态方法加锁的 进行互斥

    5.静态方法加锁,和xx.class 锁效果一样,直接属于类的

时间: 2024-10-15 04:01:21

多线程程序设计学习(14)多线程锁机制的相关文章

多线程程序设计学习(2)之single threaded execution pattern

Single Threaded Execution Pattern[独木桥模式] 一:single threaded execution pattern的参与者--->SharedResource(共享资源) 二:single threaded execution pattern模式什么时候使用--->多线程程序设计时--->数据可被多个线程访问的时候--->共享资源状态可能变化的时候--->需要确保数据安全性的时候 三:single threaded execution p

多线程程序设计学习(3)immutable pattern模式

Immutable pattern[坚不可摧模式] 一:immutable pattern的参与者--->immutable(不变的)参与者        1.1:immutable参与者是一个字段的值都无法更改的类.        1.2:immutable也没有任何用来更改字段值的方法.        1.3:immutable参与者方法不需要设置synchronized 二:immutable pattern模式什么时候使用--->当实例产生后,状态不再变化时        2.1实例状

多线程程序设计学习(6)Producer-Consumer模式

Producer-Consumer[生产消费者模式]一:Producer-Consumer pattern的参与者--->产品(蛋糕)--->通道(传递蛋糕的桌子)--->生产者线程(制造蛋糕的线程)--->消费者线程(吃掉蛋糕的线程)         二:Producer-Consumer pattern模式什么时候使用--->大量生产+大量消费的模式 三:Producer-Consumer pattern思考--->[生产消费者模式],肩负保护数据安全性使命的是通道

多线程程序设计学习(1)之多线程程序的评量标准

多线程程序的评量标准--->安全性[不损坏对象]        (1)不损坏对象是一种比喻手法,就是数据的一致性.比如银行的扣款操作,并发扣款,账户不会出现负数的余额.--->生存性[进行必要的处理]        (1)指也许不是现在,但一定会进行的必要处理.好比异常处理机制.在出现多线死锁等情况下的必要处理.--->复用性        (1)指可再利用的类,这不是必要条件,但却是体现程序质量重点条件.封装的意思.        (2)如果A类是一个已经确定可正常使用的软件程序的一部

多线程程序设计学习(5)balking模式和timed模式

Balking[返回模式]timed[超时模式]一:balking pattern的参与者--->GuardedObject(被警戒的对象) --->该模式的角色:模拟修改警戒对象的线程,当警戒条件达到执行具体操作的线程,参与者(被警戒的参与者)        二:balking pattern模式什么时候使用--->不需要刻意去执行什么操作的时候(比如说自动保存)--->不想等待警戒条件成立时.(不让线程休息)--->警戒条件只有第一次成立时候.    三:balking

多线程程序设计学习(7)read-write lock pattern

Read-Write Lock Pattern[读写]一:Read-Write Lock Pattern的参与者--->读写锁--->数据(共享资源)--->读线程--->写线程         二Read-Write Lock Pattern模式什么时候使用---> * 为了多线线程环境下保护数据安全,我们必须避免的冲突 * 一个线程读取,另一个线程写入的read-write conflick * 一个线程写入,另一个线程写入的write-write conflick *

多线程程序设计学习(4)guarded suspension模式

Guarded Suspension[生产消费者模式] 一:guarded suspension的参与者--->guardedObject(被防卫)参与者                1.1该参与者拥有一个被防卫的方法(getRequest),如果警戒条件达成,则执行.警戒条件不达成,则线程进入wait set                1.2该参与者还拥有一个改变参与者状态的方法(putRequest).参与者的状态影响着警戒条件的是否达成. --->该模式的角色:生产端线程,消费端线

多线程程序设计学习(8)Thread-Per-Message

Thread-Per-Message[这个工作交给你模式]一:Thread-Per-Message的参与者--->Client(委托人)--->host(中介开线程)--->hepler(真正工作的工人)        二:Thread-Per-Message模式什么时候使用--->提升响应时间,降低延迟时间--->适合在操作顺序无所谓的时候--->(委托人)不需要返回值的时候--->应用在服务器的制作(我提供原材料,你加工,我不关心结果)--->调用方法+

多线程程序设计学习(10)Future pattern

Future pattern[订单取货模式] 一:Future pattern的参与者--->Client(客户需求)--->Host(蛋糕门店)--->Data(票据和蛋糕的接口)--->Future(蛋糕票据)--->ReaData(制作蛋糕过程)        二:Future pattern模式什么时候使用---> 三:Future pattern思考       ---> 四进阶说明        ---> 数据类接口 1 package com.