码迷,mamicode.com
首页 >  
搜索关键字:spinlock    ( 113个结果
linux 内核同步机制之自旋锁
1. 前言 在内核开发过程中,经常遇到这种情况:共享数据的临界区即位于进程上下文,也处于中断上下文。这时该如何保护呢?首先可以肯定的是涉及睡眠的锁不能使用了,因为中断上下文不能睡眠。 这时应该考虑使用spinlock自旋锁。 2. 自旋锁的特点 spin lock是一种死等的锁机制。当前的执行例程会 ...
分类:系统相关   时间:2020-03-11 23:54:54    阅读次数:121
java自旋锁的代码实现
自旋锁:spinlock 是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环好用CPU 代码: import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic. ...
分类:编程语言   时间:2020-03-07 20:50:33    阅读次数:106
Linux内核自旋锁spinlock_t机制
摘自:https://www.jianshu.com/p/f0d6e7103d9b spinlock用在什么场景? 自旋锁用在临界区代码非常少的情况。 spinlock在使用时有什么注意事项? 临界区代码应该尽可能精简 不允许睡眠(会出现死锁) Need to have interrupts dis ...
分类:系统相关   时间:2020-03-03 22:35:00    阅读次数:119
驱动程序与应用程序交互事件对象
驱动程序代码 #pragma once #define IO_CONTROL_TRANSMIT_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN,0x8080,METHOD_BUFFERED,FILE_ANY_ACCESS) typedef struct _DEVICE_EXTE ...
分类:其他好文   时间:2020-02-23 20:18:53    阅读次数:87
linux驱动开发学习三:异步操作
前面的队列以及锁都是基于阻塞是的操作。要实现同步,还可以通过信号也就是异步的方式来进行。例如在往文件的写入字符后,发送一个信号。捕捉到信号后执行动作。这样就不会造成阻塞,之前的阻塞性IO和POLL,是调用函数进去检查,条件不满足是造成阻塞。 应用层启动异步通知机制就三个步骤: 1 调用signal函 ...
分类:系统相关   时间:2020-02-09 11:51:12    阅读次数:100
java 常用锁
公平锁和非公平锁 1.公平锁,是指多个线程按照申请的顺序来获取锁,类似排队打饭,先来后到。 2.非公平锁,是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程 比先申请的线程优先获取锁,在高并发情况下,有可能会造成优先级反转或者饥饿现象。 Java ReentrantLock而言,通过 ...
分类:编程语言   时间:2020-01-01 22:10:35    阅读次数:86
多线程同步机制
1, spinlock 适合短暂的等待,不值得休眠的那种短暂. jmp 11b 12: get_lock: lock bts $0, 0x6000 jc get_lock lock incw smp_cpus mov $smp_cpus, %bx lock btr $0, 0x6000 /*rele ...
分类:编程语言   时间:2019-12-29 11:12:30    阅读次数:114
IPC之msgutil.c源码解读
// SPDX-License-Identifier: GPL-2.0-or-later /* * linux/ipc/msgutil.c * Copyright (C) 1999, 2004 Manfred Spraul */ #include <linux/spinlock.h> #includ ...
分类:其他好文   时间:2019-12-14 20:43:46    阅读次数:109
linux驱动开发学习二:创建一个阻塞型的字符设备
在Linux 驱动程序中,可以使用等待队列来实现阻塞进程的唤醒。等待队列的头部定义如下,是一个双向列表。 struct list_head { struct list_head *next, *prev; }; struct __wait_queue_head { spinlock_t lock; ...
分类:系统相关   时间:2019-11-18 20:34:56    阅读次数:111
RocksDB线程局部缓存
概述 在开发过程中,我们经常会遇到并发问题,解决并发问题通常的方法是加锁保护,比如常用的spinlock,mutex或者rwlock,当然也可以采用无锁编程,对实现要求就比较高了。对于任何一个共享变量,只要有读写并发,就需要加锁保护,而读写并发通常就会面临一个基本问题,写阻塞读,或则写优先级比较低, ...
分类:数据库   时间:2019-09-22 15:27:39    阅读次数:164
113条   上一页 1 2 3 4 ... 12 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!