日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 无锁队列覆盖问题,无锁队列杂谈

發布時間:2025/6/15 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 无锁队列覆盖问题,无锁队列杂谈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

質量最大vczh粉(402740419) 10:13:17

nobody(1575393351)? 10:10:09

無鎖隊列,怎么可能

質量最大vczh粉(402740419) 10:13:23

用link做,輕輕松松

nobody(1575393351) 10:13:40

多個線程同時從隊列里面取,怎么可能不加鎖。。

uczh.0xDEADBEEF(365128087) 10:13:44

他已經發請求了

vczh四號粉絲(342775210) 10:13:51

可以不加鎖

質量最大vczh粉(402740419) 10:13:51

用link做,真心不用加鎖

vczh四號粉絲(342775210) 10:13:55

不過必須用cas

質量最大vczh粉(402740419) 10:14:03

CAS是啥

vczh四號粉絲(342775210) 10:14:06

否則做不了多線程的并發

nobody(1575393351) 10:14:13

link是什么東西

質量最大vczh粉(402740419) 10:30:26

陳梓瀚? 10:27:16

用interlocked compare exchange

當tail == null就換一個new link進去

這樣偏麻煩

vczh四號粉絲(342775210) 10:30:28

會把問題復雜化

質量最大vczh粉(402740419) 10:30:29

有簡單的辦法

uczh.0xDEADBEEF(365128087) 10:30:30

但性能很好的

質量最大vczh粉(402740419) 10:30:43

類似ngxqueue的辦法,保證鏈表里始終有一個結點

質量最大vczh粉(402740419) 10:30:49

這樣可以避免很多麻煩

uczh.0xDEADBEEF(365128087) 10:31:03

質量最大vczh粉(402740419) 10:31:07

只有構造和析構的時候 多線程訪問會出問題,但這時候一般又不會多線程訪問

vczh.Iskandar 10:31:17

就算如此你也要對tail->next == null的時候做判斷嘛

VCZH.粉絲數組[0] 10:31:22

質量最大vczh粉(402740419)? 10:31:07

只有構造和析構的時候 多線程訪問會出問題,但這時候一般又不會多線程訪問

不要做任何假設

vczh.Iskandar 10:31:26

這樣才能避免兩個線程同時push

質量最大vczh粉(402740419) 10:31:48

VCZH.粉絲數組[0](85126585)? 10:31:22

質量最大vczh粉(402740419)? 10:31:07

只有構造和析構的時候 多線程訪問會出問題,但這時候一般又不會多線程訪問

不要做任何假設

不是假設,構造還沒完成的時候就把對象傳給多個線程從設計上來說就是有毛病的

質量最大vczh粉(402740419) 10:31:59

析構也類似

質量最大vczh粉(402740419) 10:32:14

性質上和你在別的線程進行了野指針操作沒有區別

VCZH.粉絲數組[0] 10:32:21

ooseven(147340642) 10:32:31

這樣設計的話,對象的生命周期很難控制

VCZH.粉絲數組[0] 10:32:58

reference counting嘛

質量最大vczh粉(402740419) 10:33:00

肯定是構造完了,才丟給shared_ptr或者別的什么東西,然后才會多線程考慮持有這個對象

VCZH.粉絲數組[0] 10:33:02

現在流行

vczh.Iskandar 10:33:08

析構的時候

vczh.Iskandar 10:33:13

肯定是所有shared_ptr都完蛋了

vczh.Iskandar 10:33:17

所以這個時候也不會有人訪問了

質量最大vczh粉(402740419) 10:33:36

陳梓瀚? 10:31:17

就算如此你也要對tail->next == null的時候做判斷嘛

嗯嗯,compareandswap就是這里啊

vczh四號粉絲(342775210) 10:34:23

不僅僅是null的判斷吧

VCZH.粉絲數組[0] 10:34:33

循環隊列里邊

VCZH.粉絲數組[0] 10:34:44

tail->next == head

VCZH.粉絲數組[0] 10:34:50

貌似這樣的

質量最大vczh粉(402740419) 10:34:56

循環隊列?

VCZH.粉絲數組[0] 10:35:04

ring

VCZH.粉絲數組[0] 10:35:06

buffer

質量最大vczh粉(402740419) 10:35:15

ringbuffer是另一個概念= =

VCZH.粉絲數組[0] 10:35:24

囧,我錯了

質量最大vczh粉(402740419) 10:35:41

剛才那個是最簡單的,每個節點只能存一個pointer或者其它相同大小的東西

vczh四號粉絲(342775210) 10:35:43

質量最大vczh粉(402740419) 10:37:16

= = 堆棧這么做是找死啊

質量最大vczh粉(402740419) 10:37:19

就是算法有問題

vczh.Iskandar 10:37:50

我覺得這個例子有問題

vczh.Iskandar 10:37:55

你每一次push新數據進去的時候

vczh四號粉絲(342775210) 10:37:57

你的系統先把10Wtps過了,再說并發

vczh.Iskandar 10:38:04

都不能重用節點

vczh.Iskandar 10:38:06

都必須new一個新的

質量最大vczh粉(402740419) 10:38:45

vczh四號粉絲(342775210)? 10:37:57

你的系統先把10Wtps過了,再說并發

噗,我的服務端是單進程多線程模型

質量最大vczh粉(402740419) 10:38:53

客戶端才在搞多線程

質量最大vczh粉(402740419) 10:39:04

說錯了

質量最大vczh粉(402740419) 10:39:08

服務端是單線程多金正

質量最大vczh粉(402740419) 10:41:02

我的引擎里當初做一個類似tbb那種task式的并行框架(或者類似boost.asio)

質量最大vczh粉(402740419) 10:41:20

因為趕著出工,直接拿一個lockfree的list就上了

小老鼠(273245994) 10:41:25

沈陽發生爆炸了

質量最大vczh粉(402740419) 10:41:38

結果性能還可以

vczh.Iskandar 10:41:43

什么爆炸

VCZH.粉絲數組[0] 10:42:35

因為趕著出工,直接拿一個lockfree的list就上了

自己寫的?

質量最大vczh粉(402740419) 10:42:51

很久很久很久以前寫的

質量最大vczh粉(402740419) 10:43:05

然后寫這個的時候不知道mem barrier

質量最大vczh粉(402740419) 10:43:11

加到引擎里的時候 加了下barrier

小老鼠(273245994) 10:43:21

9時,太原街地下通道

質量最大vczh粉(402740419) 10:43:34

當時還問了這兩位將近一天……

小老鼠(273245994) 10:43:46

附近1公里都有震感

小老鼠(273245994) 10:43:57

你說這次會不會還是死35人.

VCZH.粉絲數組[0] 10:44:27

牛逼

裝配腦袋(2380479792) 10:44:37

兩·會就不讓他們好好開

小老鼠(273245994) 10:43:57

你說這次會不會還是死35人.

VCZH.粉絲數組[0] 10:44:27

牛逼

裝配腦袋(2380479792) 10:44:37

兩·會就不讓他們好好開

VCZH.粉絲數組[0] 10:44:40

我遇到這個第一想法是開源的弄一個來

御虛舟北(314969051) 10:44:41

又黑人

質量最大vczh粉(402740419) 10:45:32

VCZH.粉絲數組[0](85126585)? 10:44:40

我遇到這個第一想法是開源的弄一個來

假設需要一套整塊功能,肯定用開源的

質量最大vczh粉(402740419) 10:45:46

如果只需求一個點…… 對我們搞移動的來說,port成本太高了……

質量最大vczh粉(402740419) 10:46:00

不過本質上來說這個還是幾乎算是用開源的

質量最大vczh粉(402740419) 10:46:03

只是我人肉翻譯了下而已

VCZH.粉絲數組[0] 10:46:35

所以昨天被問到這個問題,我很反感那個家伙,,,

VCZH.粉絲數組[0] 10:46:44

尼瑪問這就是問我看過類似的帖子沒,,,

質量最大vczh粉(402740419) 10:47:16

帖子?

vczh一千號粉絲(327385942) 10:47:29

VCZH.粉絲數組[0] 10:47:41

就是說我看過討論類似的論文沒有

VCZH.粉絲數組[0] 10:47:47

看過就能說兩句

VCZH.粉絲數組[0] 10:47:58

沒看過,面試那一點時間能想出來

VCZH.粉絲數組[0] 10:48:01

還見鬼了

質量最大vczh粉(402740419) 10:48:17

??

質量最大vczh粉(402740419) 10:48:24

我曾經面試一個 剛畢業的小伙子,也談不上多優秀

質量最大vczh粉(402740419) 10:48:32

我面試就問的lock-free的隊列

御虛舟北(314969051) 10:48:33

剛畢業的小伙子

質量最大vczh粉(402740419) 10:48:38

還不是linked-list

VCZH.粉絲數組[0] 10:48:44

自己想出來了?

質量最大vczh粉(402740419) 10:48:44

是deque的

質量最大vczh粉(402740419) 10:49:03

自己肯定想不出來,但已經摸到邊了啊,我稍微誘導了一下

質量最大vczh粉(402740419) 10:49:05

就出來了

vczh.Isotope(75497789) 10:49:27

菊苣們,這里能問算法題不?

質量最大vczh粉(402740419) 10:49:38

知道基本概念了這就是很直觀的東西,需要上升到論文層面么……

質量最大vczh粉(402740419) 10:49:45

復雜一點的數據結構可能需要

質量最大vczh粉(402740419) 10:49:48

至少隊列不需要啊= =

質量最大vczh粉(402740419) 10:50:18

啥算法題?工作需要還是自己瞎折騰

VCZH.粉絲數組[0] 10:50:25

你考慮這些和我的方式不太一樣,我覺得這個東西了解就行了,自己做是下下策

我是不是得改改了?

vczh.Isotope(75497789) 10:50:44

用1*2的矩形去覆蓋m*n的矩形(m*n是偶數),問一共有多少種方法

質量最大vczh粉(402740419) 10:50:52

VCZH.粉絲數組[0](85126585)? 10:50:26

你考慮這些和我的方式不太一樣,我覺得這個東西了解就行了,自己做是下下策

做事的方式 和考察、自我考察的方式是兩碼事

質量最大vczh粉(402740419) 10:51:31

不然vczh大牛也不會做編譯器和GUI了,反正也沒人用

vczh.Iskandar 10:51:51

小老鼠(273245994) 10:52:15

內傷了

質量最大vczh粉(402740419) 10:52:38

vczh.Isotope(75497789)? 10:50:44

用1*2的矩形去覆蓋m*n的矩形(m*n是偶數),問一共有多少種方法

ACM題?滾邊去。我會,就是不告訴你

質量最大vczh粉(402740419) 10:52:40

ACM毒害人

vczh.Iskandar 10:52:54

做ACM踢掉(逃

質量最大vczh粉(402740419) 10:53:02

vczh.Isotope(75497789) 10:53:05

不是ACM題

vczh的腦殘粉(195719555) 10:53:08

vczh.Ismeow(65200296) 10:53:10

為什么踢掉……

vczh.Iskandar 10:53:14

這些就是

vczh.Isotope(75497789) 10:53:17

好像是MS面試題

vczh.Iskandar 10:53:21

這個群使用來討論奇技淫巧的

vczh.Iskandar 10:53:27

這是google的面試題,M$才不面這個

vczh.Konobuta(450635425) 10:53:48

看了下

vczh.Konobuta(450635425) 10:54:05

用了原子指令

質量最大vczh粉(402740419) 10:54:07

這是百度的面試題,google才不面這個

VCZH.粉絲數組[0] 10:54:08

質量最大vczh粉(402740419)? 10:50:52

VCZH.粉絲數組[0](85126585)? 10:50:26

你考慮這些和我的方式不太一樣,我覺得這個東西了解就行了,自己做是下下策

做事的方式 和考察、自我考察的方式是兩碼事

不然vczh大牛也不會做編譯器和GUI了,反正也沒人用

受教了,擠時間還是多把這些東西實現一下

vczh一千號粉絲(327385942) 10:54:50

vczh一千號粉絲(327385942) 10:55:12

做acm題還是不錯的

Sean(123983971) 10:55:15

小矩形可以重疊嗎?

vczh.Konobuta(450635425) 10:55:16

實際上還是相當于加鎖,只是粒度更小

vczh.Konobuta(450635425) 10:55:32

就怕有的平臺不支持

vczh.Iskandar 10:55:42

不支持CAS的平臺

vczh.Iskandar 10:55:52

等你學會編程之后

vczh.Iskandar 10:56:02

早就消失了

vczh.Konobuta(450635425) 10:54:05

用了原子指令

質量最大vczh粉(402740419) 10:54:07

這是百度的面試題,google才不面這個

VCZH.粉絲數組[0] 10:54:08

質量最大vczh粉(402740419)? 10:50:52

VCZH.粉絲數組[0](85126585)? 10:50:26

你考慮這些和我的方式不太一樣,我覺得這個東西了解就行了,自己做是下下策

做事的方式 和考察、自我考察的方式是兩碼事

不然vczh大牛也不會做編譯器和GUI了,反正也沒人用

受教了,擠時間還是多把這些東西實現一下

vczh一千號粉絲(327385942) 10:54:50

vczh一千號粉絲(327385942) 10:55:12

做acm題還是不錯的

Sean(123983971) 10:55:15

小矩形可以重疊嗎?

vczh.Konobuta(450635425) 10:55:16

實際上還是相當于加鎖,只是粒度更小

vczh.Konobuta(450635425) 10:55:32

就怕有的平臺不支持

vczh.Iskandar 10:55:42

不支持CAS的平臺

vczh.Iskandar 10:55:52

等你學會編程之后

vczh.Iskandar 10:56:02

早就消失了

vczh.Konobuta(450635425) 10:56:40

萬一有呢?

VCZH.粉絲數組[0] 10:56:43

vczh.Iskandar? 10:55:42

不支持CAS的平臺

等你學會編程之后

早就消失了

確實,我沒見過,除了學校C51單片機

裝配腦袋(2380479792) 10:56:50

連ARM都支持

vczh.Iskandar 10:56:50

就是沒有

裝配腦袋(2380479792) 10:57:02

不支持沒法辦事

VCZH.粉絲數組[0] 10:57:05

如果有,那么肯定是中斷來做時分的

vczh.Ismeow(65200296) 10:57:04

51這種平臺你會做什么搶占式Multiprogramming么……

裝配腦袋(2380479792) 10:57:07

顯卡都支持。。

vczh.Ismeow(65200296) 10:57:10

我相信不會吧

vczh.Konobuta(450635425) 10:57:24

好吧

vczh.Konobuta(450635425) 10:57:39

我也換成這個

vczh.Iskandar 10:57:59

再說了,如果不用CAS,你是沒有任何辦法的

質量最大vczh粉(402740419) 10:58:25

不支持CAS的設備一般就是單核設備了吧

vczh.腦殘粉(50923132) 10:58:27

沒有CAS,同步只能

質量最大vczh粉(402740419) 10:58:42

單核設備 還是能保證單條指令原子性的吧

vczh.Ismeow(65200296) 10:58:52

不支持CAS的設備一般是不支持多任務的設備……

質量最大vczh粉(402740419) 10:59:03

用中斷做分時任務是OK的

vczh.Ismeow(65200296) 10:59:27

問題是就那點可憐的資源……

VCZH.粉絲數組[0] 10:59:51

多核 多中斷

VCZH.粉絲數組[0] 10:59:55

就sb了

vczh.Ismeow(65200296) 10:59:56

你做個什么調度就爆了

VCZH.粉絲數組[0] 11:00:17

不過這樣SB的CPU估計沒人用

從未來??過?(815330718) 11:00:33

沒有cas, 硬生生的 用不可屏蔽中斷+變量 造一個...

vczh.Ismeow(65200296) 11:00:41

從未來??過?(815330718) 11:00:42

(逃

vczh.Ismeow(65200296) 11:00:54

NMI弄一個,不過這么弄就要硬件支持吧

vczh.Konobuta(450635425) 11:01:08

uczh.0xDEADBEEF(365128087) 11:01:24

vczh.Iskandar 11:02:10

連cas都沒有的硬件

從未來??過?(815330718) 11:02:16

vczh.Iskandar 11:02:18

你想做多線程的事情

小老鼠(273245994) 11:02:19

vczh.Iskandar 11:02:21

只能踩死

質量最大vczh粉(402740419) 11:05:35

vczh

質量最大vczh粉(402740419) 11:05:43

我今年6月份開始,要大規模做UI類的東西

vczh.Iskandar 11:05:53

你不是早就做了嗎

質量最大vczh粉(402740419) 11:06:11

我什么時候大規模做過可商業化的UI…… 除了在百度

vczh.Konobuta(450635425) 11:06:21

vczh.Konobuta(450635425) 11:06:31

教我

vczh.Iskandar 11:06:41

不是萌妹紙,滾!

vczh.Konobuta(450635425) 11:06:47

入群求節操(152606004) 11:06:50

教我

vczh.腦殘粉(50923132) 11:06:58

vczh.Iskandar? 11:06:41

不是萌妹紙,滾!

御虛舟北(314969051) 11:07:00

不是萌妹紙,滾!

質量最大vczh粉(402740419) 11:07:08

不是萌妹紙,滾!

vczh.Konobuta(450635425) 11:07:11

質量最大vczh粉(402740419) 11:07:12

話說回來

質量最大vczh粉(402740419) 11:07:22

GacUI到那時候能完善到滿足我的需求么= =

質量最大vczh粉(402740419) 11:07:30

不然的話,我是用Qt呢還是Qt呢還是Qt呢?

暫時的理解:

隊列如果限定插入只從head,彈出只從tail,那么只要滿足head != tail就是,一讀取一寫就是安全的。

總結

以上是生活随笔為你收集整理的linux 无锁队列覆盖问题,无锁队列杂谈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品久久久久 | 伊人院| 国产高清av在线 | 欧美精品亚洲一区 | 亚洲综合婷婷久久 | 精品av一区二区 | 网站黄色在线观看 | 操女人视频网站 | 99国产成人精品 | 77777av| 国产农村av| 申鹤乳液狂飙 | 草莓巧克力香氛动漫的观看方法 | 欧美人与性动交g欧美精器 国产在线视频91 | 精品国产一区二区三区性色av | 日本久久成人 | 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | 日本黄色片在线播放 | 国产精品二区视频 | aaaaaabbbbbb毛片| 黄色麻豆视频 | 欧美日韩在线一区二区三区 | 香蕉网站在线观看 | 欧美日比视频 | 亚洲免费专区 | 热玖玖 | 邻居少妇张开双腿让我爽一夜 | 91精品国产综合久久精品图片 | 国产精品一卡二卡三卡 | 狂野少女电影在线观看国语版免费 | 亚洲福利在线视频 | 天天摸夜夜操 | 57pao成人国产永久免费视频 | 91亚洲精| 九色自拍视频 | 精品人妻一区二区三区三区四区 | 国产精品久久久久久久久久东京 | 少妇诱惑av | 麻豆剧场 | 打屁股视频网站 | 91avcom| 美女污软件 | 国产精品区一区二 | 日韩激情在线观看 | 日韩电影一区二区三区四区 | 亚洲91网站 | 欧美中文字幕一区二区三区 | 国产三级视频在线播放 | 亚洲欧美日韩一区二区三区四区 | 天堂аⅴ在线最新版在线 | 热久久亚洲 | 一区二区免费在线播放 | 成人性色生活片 | 国产免费久久 | 欧日韩在线| 成年人黄色小视频 | 中文字幕精品久久久久人妻红杏1 | 国产精品区在线观看 | 深爱开心激情 | 一区二区三区欧美视频 | 99久久久无码国产精品 | 在线观看1区 | 日本妇乱大交xxxxx | 最近中文字幕在线中文视频 | a毛片视频 | 好吊色视频一区二区 | 久久国产情侣 | 香蕉视频18 | 午夜免费视频网站 | 99综合网| 日本高清视频在线观看 | 网站国产| 午夜影院私人 | 久久精品国产99久久不卡 | 少妇日皮视频 | 精品久久a | 国产精品白嫩白嫩大学美女 | 亚洲午夜av在线 | 9色视频在线观看 | 日韩综合中文字幕 | 久久艹艹| 精品少妇人妻av一区二区 | 久久av高潮av无码av喷吹 | 三级在线观看网站 | 黄色a区 | 成人免费高清在线播放 | 亚洲第一大网站 | 国产精品区一区二区三 | 伊人网在线视频 | 激情网久久 | 国产一区二区三区在线免费观看 | 国产 日韩 一区 | 麻豆传媒在线免费 | 爱蜜臀av | 浪漫樱花在线观看高清动漫 | 午夜视频福利网站 | 日日天天干 | 久久久久亚洲av无码专区首jn | 天天操天天插 |