首页 > 试题广场 >

下面有关c++线程安全,说法错误的是?

[单选题]
下面有关c++线程安全,说法错误的是?
  • 线程安全问题一般是由全局变量及静态变量引起的
  • 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全
  • c++标准库里面的string保证是线程安全的
  • POSIX线程标准要求C标准库中的大多数函数具备线程安全性
推荐
c
两个难点: 

线程安全问题都是由全局变量及静态变量引起的 ?
答案:
参考:http://blog.csdn.net/ghevinn/article/details/37764791
这里不要去扣字眼了,我当初看了半天 全局变量及静态变量。。 我想是或者。。。囧

c++标准库里面的string保证是线程安全的 ??
参考:http://ar.newsmth.net/thread-b3208a82b888e6.html

编辑于 2015-02-03 16:20:46 回复(6)
标准库里面的string在多线程下并不保证是都是安全的,只提供两种安全机制:
1.多个线程同时读取数据是安全的。
2.只有一个线程在写数据是安全的。
发表于 2015-03-04 14:42:50 回复(2)
1.局部变量局部使用是安全的
为什么?因为每个thread 都有自己的运行堆栈,而局部变量是生存在堆栈中,大家不干扰。
2.全局原生变量多线程读写是不安全的  , 全局变量是在堆(heap)中。
3.函数静态变量多线程读写也是不安全的。
4.volatile能保证全局整形变量是多线程安全的么?
不能。 volatile仅仅是告诫compiler不要对这个变量作优化,每次都要从memory取数值,而不是从register
5.InterlockedIncrement保证整型变量自增的原子性
写好多线程安全的法宝就是封装,使数据有保护的被访问到
安全性:

局部变量 > 成员变量 > 全局变
发表于 2015-08-30 09:34:35 回复(4)
C++11之前标准库中没有关于线程的部分,因此不能保证C++标准库的实现是线程安全的。

选C
发表于 2015-01-30 15:47:07 回复(0)
标准库记得string只提供两种安全机制,一是多线程同时读取数据安全,二是单线程写入数据安全。
发表于 2020-03-19 20:26:34 回复(0)
线程安全问题都是由全局变量及静态变量引起的 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全 POSIX线程标准要求C标准库中的大多数函数具备线程安全性
发表于 2021-02-26 11:28:58 回复(0)
标准库里面的string在多线程下并不保证是都是安全的,多个线程同时读取或者只有一个线程在写,才是线程安全的
发表于 2018-09-11 11:07:00 回复(0)
安全性:
局部变量 > 成员变量 > 全局变量


标准库里面的string在多线程下并不保证是都是安全的,只提供两种安全机制:
1.多个线程同时读取数据是安全的。
2.只有一个线程在写数据是安全的。


发表于 2017-04-19 20:38:41 回复(0)
安全性:局部变量大于成员变量大于全局变量
发表于 2021-09-28 23:29:28 回复(0)
发表于 2017-09-14 20:29:12 回复(0)
BD是正确的。
A说的并不全面,例如系统调用对于内核态的改变可能影响其他线程。C是错误的,例如一个线程调用append(),另一个线程调用back()。

编辑于 2016-09-08 23:09:05 回复(0)
若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。
难道不应该是互斥吗
发表于 2016-08-30 23:23:58 回复(0)
全局变量存储在堆中,局部变量存储在栈中,多全局变量或者静态变量进行多线程读是线程安全的,进行多次写是线程不安全的,

发表于 2016-08-02 10:08:13 回复(0)
A
发表于 2015-06-17 11:41:04 回复(1)
标准库里面的string在多线程下并不保证是都是安全的,只提供两种安全机制:
1.多个线程同时读取数据是安全的。
2.只有一个线程在写数据是安全的。
发表于 2015-06-09 20:48:31 回复(0)
A选项也不一定对吧,因为类的成员变量如果是容器,在主线程里面写,在另外一个线程(传递的参数为this指针)中调用函数进行读,也不是线程安全的,所以线程安全问题并不都是有全局变量和静态变量引起的 
发表于 2015-05-06 15:14:10 回复(0)
A

发表于 2015-01-12 15:07:59 回复(0)