分享到:文章主题: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
water4楼主
water4
身份
用户
文章
2948
星座
天蝎座
积分
41885
等级
沉香(10)

发信人: water4 (water4), 信区: CPlusPlus
标  题: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 07:50:43 2019), 站内
  
用relaxed模型也没发现什么问题
--
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 115.34.130.*]

返回顶部
Akyrum第1楼
人類に栄光あれ
身份
用户
文章
443
星座
白羊座
积分
3951
等级
沉香(10)

发信人: Akyrum (人類に栄光あれ), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 08:55:18 2019), 站内
  
会乱序执行
relaxed只是执行顺序不定,依然是原子操作
比如多线程对一个atomic_int加加减减,用relaxed是不会出错的,标准库和背后的软硬件系统保证了对这个atomic_int的任何操作都是原子的。至于背后咋实现的,我就不清楚了…
【 在 water4 (water4) 的大作中提到: 】
: 用relaxed模型也没发现什么问题
  
--
  
※ 修改:·Akyrum 于 Nov  9 09:14:52 2019 修改本文·[FROM: 123.150.182.*]
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 123.150.182.*]

返回顶部
z16166第2楼
z16166
身份
用户
文章
4199
星座
魔羯座
积分
37500
等级
灵樨(8)

发信人: z16166 (z16166), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 10:07:25 2019), 站内
  
x86 cpu不乱序执行的话,最近这两年怎么报出来一堆cpu漏洞的?
--
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 123.115.132.*]

返回顶部
poikilotherm第3楼
呆子
身份
用户
文章
18524
星座
处女座
积分
55020
等级
紫檀(11)

发信人: poikilotherm (呆子), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 10:17:33 2019), 站内
  
乱序有两个层面,一个是编译器优化可能重排指令,另一个是cpu会乱序执行指令  
    
【 在 water4 () 的大作中提到: 】
: 用relaxed模型也没发现什么问题
--
发自xsmth (iOS版)
--
  
我扶着七万多一平米房子阳台的扶手抽着烟,思绪万千,人活着究竟为了什么。仲博彩票平台是不是骗子钱?权?有钱有权之后呢?这时,身后走来一位美丽可人的少妇对我说:“师傅,这是你通厕所的费用两百块”。
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://m.gths789.com·[FROM: 117.136.87.*]

返回顶部
water4第4楼
water4
身份
用户
文章
2948
星座
天蝎座
积分
41885
等级
沉香(10)

发信人: water4 (water4), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 12:06:51 2019), 站内
  
但是这段代码用memory_order_relaxed跑了100万次没发现有什么问题,那acquire和release还有什么用?
  
  
#include <thread>
#include <atomic>
#include <cassert>
#include <vector>
#include <iostream>
  
int main() {
  
     int counter = 0;
     std::atomic_bool lock{false};
     std::vector<std::thread> threads(8);
  
     for (int i = 0; i < threads.size(); ++i) {
         threads[i] = std::move(std::thread([&counter, &lock] {
             int loops = 0;
             while (loops < 2000) {
                 bool expected = false;
                 if (lock.compare_exchange_strong(expected, true, std::memory_order_relaxed)) {
                     counter++;
                     lock.store(false, std::memory_order_relaxed);
                     loops++;
                 }
             }
         }));
     }
  
     for (auto &th : threads) {
         th.join();
     }
  
     std::cout << "final count: " << counter << std::endl;
  
     return 0;
}
【 在 Akyrum 的大作中提到: 】
: 会乱序执行
: relaxed只是执行顺序不定,依然是原子操作
: 比如多线程对一个atomic_int加加减减,用relaxed是不会出错的,标准库和背后的软硬件系统保证了对这个atomic_int的任何操作都是原子的。至于背后咋实现的,我就不清楚了…
  
--
※ 修改:·water4 于 Nov  9 12:07:25 2019 修改本文·[FROM: 115.34.130.*]
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 115.34.130.*]

返回顶部
hongdiao第5楼
hongdiao
身份
用户
文章
1412
星座
狮子座
积分
26296
等级
沉香(10)

发信人: hongdiao (hongdiao), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 12:21:28 2019), 站内
  
X86是强顺序的。memory_order如同楼上所说,存在编译器和CPU指令执行两个层面。
--
※ 修改:·hongdiao 于 Nov  9 12:21:49 2019 修改本文·[FROM: 1.91.32.*]
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 1.91.32.*]

返回顶部
beanpole第6楼
咊 期待在春天里
身份
用户
文章
6126
积分
47749
等级
椽桷(13)

发信人: beanpole (咊 期待在春天里), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 12:50:39 2019), 站内
  
586时代就会玩乱序,预测分支操作了
【 在 water4 的大作中提到: 】
: 用relaxed模型也没发现什么问题
  
--
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 171.104.23.*]

返回顶部
telangpujing第7楼
telangpujing
身份
用户
文章
886
星座
未知
积分
21784
等级
灵樨(8)

发信人: telangpujing (telangpujing), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 13:06:30 2019), 站内
  
就是说x86程序原子同步用任何内存序都不会出问题?
  
【 在 hongdiao 的大作中提到: 】
: X86是强顺序的。仲博彩票平台是不是骗子memory_order如同楼上所说,存在编译器和CPU指令执行两个层面。
  
--
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 106.121.163.*]

返回顶部
z16166第8楼
z16166
身份
用户
文章
4199
星座
魔羯座
积分
37500
等级
灵樨(8)

发信人: z16166 (z16166), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 13:28:40 2019), 站内
  
compare_exchange_strong/compare_exchange_weak本身是原子操作
  
http://www.cplusplus.com/reference/atomic/atomic/compare_exchange_strong/
  
  But the entire operation is atomic: the value cannot be modified by other threads between the instant its value is read and the moment it is replaced.
--
  
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 123.115.132.*]

返回顶部
Akyrum第9楼
人類に栄光あれ
身份
用户
文章
443
星座
白羊座
积分
3951
等级
沉香(10)

发信人: Akyrum (人類に栄光あれ), 信区: CPlusPlus
标  题: Re: 仲博彩票平台是不是骗子_X86 cpu是不是不会乱序执行,原子操作不用考虑memory order
发信站: 江苏快三送28元体验金主页-彩经_彩喜欢木社区 (Sat Nov  9 13:46:26 2019), 站内
  
这是要试验出counter计数错误吗?确实小概率且难以复现错误的实验
人为乱个序看看
bool expected = false;
auto cc=counter;
cc+=1;
...线程0几万条空指令,线程2十几万条空指令,依次每线程都插不同长度的空指令....
if (lock.compare_exchange_strong(expected, true, std::memory_order_relaxed)) {
counter=cc;
lock.store(false, std::memory_order_relaxed);
【 在 water4 (water4) 的大作中提到: 】
: 但是这段代码用memory_order_relaxed跑了100万次没发现有什么问题,那acquire和release还有什么用?
: #include <thread>
: #include <atomic>
: ...................
  
--
  
※ 修改:·Akyrum 于 Nov  9 14:29:28 2019 修改本文·[FROM: 219.133.46.*]
※ 来源:·江苏快三送28元体验金主页-彩经_彩喜欢木社区 http://gths789.com·[FROM: 123.150.182.*]

返回顶部
  • 文章数:23 分页:
    1. 1
    2. 2
    3. 3
    4. >>