b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

分布式计算原理本文仅仅是私人MEMO,仅仅起到私人记录大纲之(2)

电脑杂谈  发布时间:2018-02-21 12:27:40  来源:网络整理

?????????????? 互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。

?????????????? 如果加锁的代码经常被调用,但竞争情况很少发生时,应该优先考虑使用自旋锁,自旋锁的开销比较小,互斥量的开销较大。

?????????????? 如果是单核处理器,一般建议不要使用自旋锁。

?????? Ticket Lock

?????????????? 解决了普通自旋锁的公平性问题,锁有一个服务号,表示正在服务的线程。每个线程自己有一个排队号。分布式计算原理线程不断询问服务号是不是自己的排队号,不是就自旋轮询,否则推出自旋。

?????????????? 但是这个模式使得各个线程的缓存需要同步(访问同一个服务号),导致数据在缓存间同步开销很大,

?????? MCS锁

?????????????? 申请线程只在本地变量上自旋,直接前驱负责通知其结束自旋,减少了不必要的处理器缓存同步。

?????? CLH锁

?????????????? 申请线程只在本地变量上自旋,不断轮询前去的状态,发现前驱释放了锁就结束自旋。

?????? AQS中的CLH机制的等待机制从自旋变成了阻塞唤醒。但是JVM默认对锁进行自旋优化(混合锁)。

num&=(num-1)可以去掉num最低位的1,如果存在的话

ArithmeticException

LinkedHashMap 保证插入数据顺序的HashMap

BigDecimal的高精度特点 multiply和divide

public class LinkedList<E>

?????? extends AbstractSequentialList<E>

?????? implements List<E>, Deque<E>, Cloneable, java.io.Serializable

public class ArrayList<E> extends AbstractList<E>

?????????????? implements List<E>, RandomAccess, Cloneable, java.io.Serializable

IllegalThreadStateException

System.out.println()线程安全 但是如果在参数列表进行数据计算会出现线程安全问题

currentThread() isAlive()可以判断是否存活

Thread.sleep() 让this.currentThread()返回的线程沉睡

java中有以下3中方法可以终止正在运行的线程:

?????? 1、线程正常退出(run()方法结束)

?????? 2、使用stop()方法强行停止线程,但是stop、suspend、resume都过期了

?????? 3、interrupt方法中断线程

调用interrupt()方法不是马上中断,而是打了一个标记

静态方法Thread.interrupted()作用是测试当前线程是否发生中断 清除中断位

interrupt()作用是打断指定线程 置中断状态

isInterrupted()方法作用是判断是否是中断状态

利用中断位加return进行线程停止是很好的方法

stop()方法与java.lang.ThreadDeath异常

?????? stop()方法会抛出java.lang.ThreadDeath异常


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-87102-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 葛广龙
      葛广龙

      中国军民有权抗击美舰美军

    热点图片
    拼命载入中...