日韩性视频-久久久蜜桃-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 无锁队列覆盖问题,无锁队列杂谈的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天天射,天天干 | 日日日网站 | 国产盗摄一区二区三区在线 | 女人囗交吞精囗述 | 樱花电影最新免费观看国语版 | 97公开免费视频 | 一区二区在线观看免费视频 | 午夜国产一级 | 顶级黑人搡bbw搡bbbb搡 | 精品少妇久久久 | 亚洲熟妇无码一区二区三区 | 中文字幕无码av波多野吉衣 | 中文字幕精品视频在线观看 | 国产美女在线精品 | 精国产品一区二区三区a片 国产精品第一 | 永久免费在线播放 | 九九爱爱视频 | 欧洲金发美女大战黑人 | 欧美日韩亚洲色图 | 91视频99| 欧美日韩中文国产 | 免费激情av | 色老头影视 | 囯产精品一品二区三区 | 亚洲区欧美 | 日本69av| 亚洲免费观看av | 精品国产乱码久久久久久闺蜜 | 成人免费看片' | av黄色成人| 人人人妻人人澡人人爽欧美一区 | 97免费在线观看视频 | 相亲对象是问题学生动漫免费观看 | 久草a视频 | 日本人六九视频 | 日本中文一区 | 日韩三级国产精品 | 91久久精品一区二区三 | www.日本黄色 | 日本黄色小视频 | 无码国产69精品久久久久网站 | 国产精品美女av | 精品香蕉视频 | brazzers欧美一区二区 | 亚洲欧洲精品视频 | 97超碰人人模人人人爽人人爱 | 扒开美女内裤狂揉下部 | 毛片1000部免费看 | 日本大尺度做爰呻吟 | 欧美欧美欧美 | 成年人午夜视频 | 久久无码人妻精品一区二区三区 | 日本嫩草影院 | 欧美一本 | 成人在线黄色 | 国产亚洲欧美视频 | 光棍影院av | 蜜臀在线播放 | 国产a三级| 无码人妻丰满熟妇区五十路 | 狠狠操女人 | 全部毛片永久免费看 | 秋霞午夜网 | 免费播放毛片精品视频 | 筱田优av | 国产小视频免费 | 国产人澡人澡澡澡人碰视频 | 狠狠操2019 | 国产原创中文av | 人人妻人人爽人人澡人人精品 | 欧美九九视频 | 另类第一页| 国产精品久久久精品三级 | 95香蕉视频| 欧美 日本 国产 | 咪咪成人网 | 亚洲天堂手机在线观看 | 午夜免费精品 | 老色批网站 | 亚洲最新在线观看 | 手机看片国产 | 我要看一级片 | 少妇av在线播放 | 在线观看国产黄色 | 干一干操一操 | 午夜你懂的 | 中文天堂 | 黄色网在线播放 | 久操热| 亚洲一区影院 | 免费三级在线 | 色欲av无码精品一区 | 有码一区| 丰满秘书被猛烈进入高清播放在 | 亚洲AV无码国产日韩久久 | 澳门免费av| 国产欧美综合一区 | 800av免费在线观看 | 黄色不卡 |