面试
Yannick_J
Yes-亚历山大的陀螺
展开
-
【刷题】删除双向链表里相同的节点
有双向链表结点定义为: struct node { int data; struct node *front,*next; }; 有两个双向链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。答案:typedef struct node{ int data; struct...原创 2019-05-16 14:01:06 · 2414 阅读 · 1 评论 -
【基础】 理解Memory Barrier(内存屏障)
转自:理解Memory Barrier(内存屏障)本文例子均在 Linux(g++)下验证通过,CPU 为 X86-64 处理器架构。所有罗列的 Linux 内核代码也均在(或只在)X86-64 下有效。本文首先通过范例(以及内核代码)来解释 Memory Barrier,然后介绍一个利用 Memory Barrier 实现的无锁环形缓冲区。Memory Barrier 简介程序在...转载 2019-04-11 11:16:41 · 341 阅读 · 0 评论 -
volatile类型修饰符/内存屏障/处理器缓存
转载:[面试]volatile类型修饰符/内存屏障/处理器缓存请问什么是volatile<<Java并发编程的艺术>>: java语言规范第三版中对volatile的定义如下:java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获得这个变量。java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段...转载 2019-05-16 14:00:48 · 276 阅读 · 0 评论