volatile在多线程并发中用途非常广,原因是它有两个特性:
保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
禁止进行指令重排序。
内存模型的相关概念要想弄明白volatile的原理,先需要知道内存模型的一些概念。先看一个图:计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程...
分类:
编程语言 时间:
2016-05-13 00:50:10
阅读次数:
228
Minimum Sum
Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3710 Accepted Submission(s): 852
Problem Description
You are given N po...
分类:
其他好文 时间:
2016-05-13 00:47:22
阅读次数:
352
VTK相关的基础知识VTK,visualization toolkit,可视化工具包,主要应用于三维计算机图形、图像处理和可视化方面。它在三维函数库OpenGL的基础上采用面向对象的设计方法发展而来,且具有跨平台的特性。
VTK面向对象,含有大量的对象模型。
源对象是可视化流水线的起点,映射器(Mapper)对象是可视化流水线的终点,是图形模型和可视化模型之间的接口.
回调(或用户方法):...
分类:
其他好文 时间:
2016-05-13 00:47:15
阅读次数:
466
环境:
win7 32bits
Visual Studio 2013
参考:https://msdn.microsoft.com/zh-cn/library/4ddd21xh.aspx
错误说明“prototype”: 未调用原型函数(是否是有意用变量定义的?
下列示例将产生C4930错误
// C4930.cpp
// compile with: /W1
class ...
分类:
其他好文 时间:
2016-05-13 00:47:50
阅读次数:
192
网络编程模型及网络编程三要素...
分类:
其他好文 时间:
2016-05-13 00:48:17
阅读次数:
165
C/C++中全局变量与局部变量的关系
全局变量与局部变量可以重名,在某个函数内引用变量时,会用到局部变量而不是全局变量,可以理解为“就近原则”。
当一个函数体内有多个局部变量时,这些局部变量的作用于就限定在函数体内的更小一级区域,比如函数体内有两个循环体,在两个循环体内都定义了局部变量val,则val的作用域就为循环体内而不仅仅是函数体内。
重名情况下如果要使...
分类:
其他好文 时间:
2016-05-13 00:47:00
阅读次数:
147
链接
牛客OJ:平衡二叉树
九度OJ:未收录
GitHub代码: 040-平衡二叉树
CSDN题解:剑指Offer–040-平衡二叉树 牛客OJ
九度OJ
CSDN题解
GitHub代码 040-平衡二叉树
未收录
剑指Offer–040-平衡二叉树
040-平衡二叉树
题意题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
递...
分类:
其他好文 时间:
2016-05-13 00:47:29
阅读次数:
231
string类的查找函数:
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n) const;//从pos开始查找字...
分类:
编程语言 时间:
2016-05-13 00:48:36
阅读次数:
249
Description
A Telephone Line Company (TLC) is establishing a new telephone cable network. They are connecting several places numbered by integers from 1 to
N. No two places have the same number. T...
分类:
Web程序 时间:
2016-05-13 00:47:47
阅读次数:
232
点击进入_更多_Java千百问1、如何遍历数组我们在处理数组时,经常使用for循环或foreach循环进行遍历,因为数组中的所有元素类型相同并且数组的大小是已知的。
了解什么是数组看这里:java中的数组是什么
了解for循环看这里:java中如何循环执行使用for循环遍历public class TestArray { public static void main(String[] ar...
分类:
编程语言 时间:
2016-05-13 00:48:15
阅读次数:
151
在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象。甚至,可以只给出方法的定义而不实现,由子类根据具体需求来具体实现。
这种只给出方法定义而不具体实现的方法被称为抽象方法abstract,抽象方法是没有方法体的(没有{}),在代码的表达上就是没有“{}”。包含一个或多个抽...
分类:
编程语言 时间:
2016-05-13 00:46:46
阅读次数:
176
Waking up in the morning, Apollinaria decided to bake cookies. To bake one cookie, she needs n ingredients, and for each ingredient she knows the value ai — how many grams of this ingredient one needs...
分类:
其他好文 时间:
2016-05-13 00:46:36
阅读次数:
153
在动态数组类中,通过类的成员函数访问数组元素,可以在每次访问之前检查一下下标是否越界,使得数组下标越界的错误能够及早被发现。这种检查,可以通过C++的assert来进行。assert的含义是“断言”,它是标准C++的cassert头文件中定义的一个宏,用来判断一个条件表达式的值是否为true,如果不为true,则程序会中止,并且报告出错误,这样就很容易将错误定位。
以下是一个简单的动态数组类示例...
分类:
编程语言 时间:
2016-05-13 00:46:25
阅读次数:
166
蚂蚁的难题(三)
时间限制:2000 ms | 内存限制:65535 KB
难度:4
描述
蚂蚁终于把尽可能多的食材都搬回家了,现在开始了大厨计划。
已知一共有 n 件食材,每件食材有一个美味度 Ai 和新鲜度 Bi , 如果蚂蚁在第t时刻将第i样食材烹饪成功,则得到Ai-t*Bi 的美味指数,当然,用第i件食材做饭要花去 Ci 的时间。
众所周知,蚂蚁...
分类:
其他好文 时间:
2016-05-13 00:47:22
阅读次数:
158
前几篇博客排序算法都是 用的比较排序,时间复杂度最低的是 O(nlgn),这也是比较排序最优的时间复杂度。
这次计数排序用的是线性时间复杂度的排序,也就是说不是通过比较来确定排序顺序的。
计数排序是 假设n个元素中的每一个都是在0到k区间内的一个整数,也就是整个数组里最大的数是 k,这是我们需要一个数组B[]来存放排序的输出,用C[]来提供临时存储的空间。其中,特别有意思的是,C[i],它保存...
分类:
编程语言 时间:
2016-05-13 00:45:53
阅读次数:
145
【LeetCode】Remove Duplicates from Sorted Array 解题报告标签(空格分隔): LeetCode[LeetCode]https://leetcode.com/problems/remove-duplicates-from-sorted-array/Total Accepted: 129010 Total Submissions: 384622 Difficul...
分类:
其他好文 时间:
2016-05-13 00:45:59
阅读次数:
145
Concurrency SimulatorPS:这道题目,看懂题意就费了好大功夫。跟着RuJia的程序走了一遍,调试了一遍才明白个大概,只能说基础不是很好,还需要大量的时间学习。
PS:因为该题排版较麻烦,这里给出OJ网址:UVa210 - Concurrency Simulator 你的任务是模拟n个程序(按输入顺序编号为1~n)的并行执行。每个程序包含不超过25条语句,格式一共有5种:...
分类:
其他好文 时间:
2016-05-13 00:47:33
阅读次数:
172