并发技巧清单可变状态是至关重要的(It`s the mutable state stupid) . 所有问题都可以归结为如何协调对并发状态的访问. 可变状态越少就越容易确保线程安全性.尽量将域声明为final类型 , 除非他们是可变的.不可变对象一定是线程安全的 不可变对象能极大的降低并发编程的.....
分类:
其他好文 时间:
2015-01-19 22:24:17
阅读次数:
139
const的美妙在于它能让你规定一个语义上的常量。应该尽可能地在代码中使用它,全局作用域,命名空间内,类里面都可以使用, 不管是静态还是非静态的对象,你都可以使用它。
一个const对象,它只能调用const函数。因为非const函数,可能会修改这个对象。因此,如果一个成员函数,它不会修改任何非static 成员数据,你应该声明为const。比如:
class String {
...
分类:
编程语言 时间:
2015-01-19 21:00:33
阅读次数:
179
【1】lambda表达式语法定义 lambda表达式的语法定义如下: [capture] (parameters) mutable ->return-type {statement}; (1) [capture]: 捕捉列表。捕捉列表总是出现在lambda函数的开始处。实质上,[]是lambd...
分类:
编程语言 时间:
2015-01-18 16:54:48
阅读次数:
225
简介:[capture](parameter) mutable ->return_type {statement}[capture]:捕获列表,是lambda函数的引出符号,从上下文中捕捉变量以供函数使用。 [var]:值传递捕捉变量var; [=]:值传递捕捉所有父作用域变量; [&var]...
分类:
编程语言 时间:
2015-01-18 08:12:09
阅读次数:
223
Foundation框架之NSString及其Mutable类型
分类:
其他好文 时间:
2015-01-08 17:13:40
阅读次数:
121
mutalbe的中文意思是“可变的,易变的”,跟C++中的const是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成con...
分类:
编程语言 时间:
2015-01-05 12:57:15
阅读次数:
175
托管数组实际是System::Array 类型的对象,因此在 C++/CLI 程序中创建的托管数组能使用该类提供的各种方法和属性。
[1] 定义
[qualifiers]
[cli::]array ^var;
qualifiers
存储方式说明(可选项)。可选择的存储方式包括:mutable,
volatile,const,extern和
statc。...
分类:
编程语言 时间:
2015-01-01 10:09:06
阅读次数:
332
ListBufferListBuffer类位于 scala.collection.mutable.ListBuffer val buf = new ListBuffer[Int] val l1 = List(1,2,3,4,5) for (x<-l1) buf += x+...
分类:
其他好文 时间:
2014-12-30 11:20:25
阅读次数:
129
标题有些绕。举个例子:在头文件中声明一个不可变数组,如- (NSArray *)images;然后在匿名类延展中定义一个可变的属性变量,如@property (nonatomic, strong) NSMutableArray *images; // for UIImageView。如下所示:@in...
分类:
移动开发 时间:
2014-12-25 14:28:55
阅读次数:
200
1、问题描述有类如下class A_class{ void f() const { ... }};在上面这种情况下,如果要修改类的成员变量,该怎么办?2、析C++中,类的数据成员加上mutable后,修饰为const的成员函数,就可以修改它了 。3、举例如下测试类头文...
分类:
编程语言 时间:
2014-12-25 09:57:07
阅读次数:
229