1.synchronized概述: synchronized修饰的方法或代码块相当于并发中的临界区,即在同一时刻jvm只允许一个线程进入执行。synchronized是通过锁机制实现同一时刻只允许一个线程来访问共享资源的。另外synchronized锁机制还可以保证线程并发运行的原子性,有序性,可见 ...
分类:
其他好文 时间:
2020-03-18 18:37:57
阅读次数:
41
1、CAS(compare and swap) CAS 概念:CAS是一种系统原语,能够原子地完成比较和交换两个动作(所谓原语属于操作系统用语范畴。原语由若干条指令组成的,用于完成一定功能的一个过程。primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段 ...
分类:
编程语言 时间:
2020-03-18 15:20:15
阅读次数:
70
1. 前言 在内核开发过程中,经常遇到这种情况:共享数据的临界区即位于进程上下文,也处于中断上下文。这时该如何保护呢?首先可以肯定的是涉及睡眠的锁不能使用了,因为中断上下文不能睡眠。 这时应该考虑使用spinlock自旋锁。 2. 自旋锁的特点 spin lock是一种死等的锁机制。当前的执行例程会 ...
分类:
系统相关 时间:
2020-03-11 23:54:54
阅读次数:
121
自旋锁:spinlock 是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环好用CPU 代码: import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic. ...
分类:
编程语言 时间:
2020-03-07 20:50:33
阅读次数:
106
基于TMR和巨大隧穿磁阻效应,总共衍生出两代主要的MRAM器件类型:第一代是磁场驱动型MRAM,即通过电流产生的磁场驱动存储单元的磁矩进行写入操作,典型代表有星型MRAM和嵌套型MRAM;第二代是电流驱动型自旋转移矩MRAM(STT-MRAM),即通过极化电流对存储单元进行写入操作。弗吉尼亚大学的研 ...
分类:
其他好文 时间:
2020-03-04 15:08:44
阅读次数:
68
摘自:https://www.jianshu.com/p/f0d6e7103d9b spinlock用在什么场景? 自旋锁用在临界区代码非常少的情况。 spinlock在使用时有什么注意事项? 临界区代码应该尽可能精简 不允许睡眠(会出现死锁) Need to have interrupts dis ...
分类:
系统相关 时间:
2020-03-03 22:35:00
阅读次数:
119
ReentrantLock是一把重入锁,可中断,可以限时,支持公平锁和非公平锁。 下面举一个生活中的例子,帮助大家来更好的理解ReentrantLock这些特性。 火车购票。买票人争先恐后的跑到G1020检票口检票回家,谁先跑到检票口,谁先验票,谁先回家。那些跑的慢没有抢到检票权的,一个一个的在后面 ...
分类:
其他好文 时间:
2020-02-29 18:45:59
阅读次数:
63
在多线程编程中,锁是常用地控制并发的机制,对于临界区的资源,需要保证线程之间互斥地访问。 1. 可重入锁 可重入锁,也叫做递归锁,指的是多次对同一个锁进行加锁操作,都不会阻塞线程。实现思路:记录当前锁正在被哪个线程使用,采用计数来统计lock和unlock的调用次数。正常情况下,lock和unloc ...
分类:
其他好文 时间:
2020-02-26 20:39:55
阅读次数:
67
一、读写锁读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。读操作可以共享,写操作是排他的,可以有多个在读(与 CPU 数相关),只能有唯一个在写,但不能同时既有读者又有写者。如果读写锁当前没有读者,也没有写者,那么写者... ...
分类:
其他好文 时间:
2020-02-26 14:11:21
阅读次数:
64
考研量子力学为什么没考好?首先,因为物理没有套路,没有类似题,或没有足够的训练(比如两三道这类题),所以第一题第一问我就忘记了怎么写,后来才看到在量子力学考研指导书里有一道这个题,还有最后的那题,升降算符法求谐振子波函数也是比较偏,过程很复杂,我做过这题,但是由于太偏了,而且过程很复杂,我记不住过程 ...
分类:
其他好文 时间:
2020-02-24 00:17:48
阅读次数:
75