真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言非阻塞io golang系統(tǒng)調(diào)用阻塞問題

go語言中的tcpconn是阻塞還是非阻塞的

阻塞socket和非阻塞socket的區(qū)別: 1、讀操作 對(duì)于阻塞的socket,當(dāng)socket的接收緩沖區(qū)中沒有數(shù)據(jù)時(shí),read調(diào)用會(huì)一直阻塞住,直到有數(shù)據(jù)到來才返回。當(dāng)socket緩沖區(qū)中的數(shù)據(jù)量小于期望讀取的數(shù)據(jù)量時(shí),返回實(shí)際讀取的字節(jié)數(shù)。

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管雅安,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

我們真的需要Go語言嗎?

我們這個(gè)世界真的需要另外一種C語言風(fēng)格的編程語言嗎?很顯然,谷歌很早就這么認(rèn)為了,在 2009 年,它借用雷蒙斯樂隊(duì)的歌“Hey!Ho!Let’s Go”,正式推出了 Go 語言。現(xiàn)在 Go 語言開發(fā)團(tuán)隊(duì)已經(jīng)開發(fā)出了這種語言的第一個(gè)穩(wěn)定版本,他們稱之為 Go 1,他們將這種語言推向世界,希望人們用這種語言“開發(fā)出健壯的軟件產(chǎn)品和作品。”那么,現(xiàn)在人們對(duì)這種語言的使用情況又是如何呢?讓我們先回顧一下,什么是 Go 語言,是什么促使谷歌決定推出這樣一種語言?按 Go 語言的“常見問題”里的說法,自從那個(gè)“重要的系統(tǒng)級(jí)編程語言”誕生距今已超過十幾年了,這段時(shí)間計(jì)算機(jī)世界已經(jīng)發(fā)生了很大的變化。谷歌的才人們對(duì)目前現(xiàn)有的各種語言深感失望,他們必須要在“快速的編譯、快速的執(zhí)行或簡(jiǎn)單編程”之間做出選擇?!皼]有一種主流的編程語言,例如C,C++,Java,Python 等,能提供谷歌人想要的全部特征。于是,谷歌的工程師從 2007 年起開始開發(fā) Go 語言?!俺R妴栴}”里這樣說:Go 語言在基本語法上”基本上屬于C語言家族“,但它從 Pascal 語系吸收了”大量的理念“,還有一些思想是來自其它的語言。但對(duì)于程序員來說,應(yīng)該把它當(dāng)成一種全新的語言,一種以”讓程序員更有效率,讓編程更有效率,至少是讓我們更有效率并且使編程更有樂趣“的理念為設(shè)計(jì)目標(biāo)的編程語言。Go 語言擅長(zhǎng)做什么…?那么,Go 語言擅長(zhǎng)做什么?根據(jù)谷歌著名的軟件工程師——Go 語言的設(shè)計(jì)人之一——Rob Pike 的說法,它是用來開發(fā)”大型軟件“的。Pike 說 Go 語言適合于”很多程序員一起開發(fā)的大型軟件,并且開發(fā)周期較長(zhǎng),支持云計(jì)算的網(wǎng)絡(luò)服務(wù):簡(jiǎn)言之,就是服務(wù)端軟件。Go 語言能夠讓程序員快速開發(fā),并且在軟件不斷的增長(zhǎng)過程中,它能讓程序員更容易地進(jìn)行維護(hù)和修改。它融合了傳統(tǒng)編譯型語言的高效性和腳本語言的易用性和富于表達(dá)性?!?作為原貝爾實(shí)驗(yàn)室 Unix 開發(fā)小組成員,Pike 對(duì)系統(tǒng)軟件有相當(dāng)?shù)恼J(rèn)識(shí)。)但對(duì)于其它類型的軟件,Go 語言也一樣的好用。例如,我在 Google+ 上詢問了 Go 語言的使用者,得到了 Douglas Fils 的回復(fù),他正在拿各種語言做實(shí)驗(yàn)。Fils 說他現(xiàn)在有時(shí)會(huì)開發(fā)一些 Web 應(yīng)用程序,大多數(shù)都是在 Java 虛擬機(jī)(JVM)平臺(tái)上?!八?Java 自然是最常用的。我最近開始嘗試更多的語言,例如 Scala 和 Groovy。我用 Groovy 語言已經(jīng)開發(fā)了不少的東西,而且剛剛完成了一個(gè) Groovy/Grails 語言上的大型項(xiàng)目。我還研究了一下 Ruby on Rails/Python (Python 框架),并用它們做了一些東西?!彼f他用早期版本的 Go 語言開發(fā)了一個(gè) Web 界面來處理數(shù)據(jù)資源。但很不幸?!爱?dāng)時(shí)的 Go 的程序庫和語法使得開發(fā)起來很困難。我還嘗試了 node.js,而且,到了一月份,我的精力完全轉(zhuǎn)向了 node.js.”Node.js,F(xiàn)ils 說,很流行,“雖然我很喜歡它,但它的單線程事件循環(huán)機(jī)制和非阻塞的編程模式讓我不太滿意。還有,所有的東西都要用 Javascript 的回調(diào)函數(shù),我不喜歡這樣?!焙茱@然,他不是一個(gè) JavaScript 的粉絲。Go 語言的語法和結(jié)構(gòu),從另一方面講,“還是很簡(jiǎn)潔的。”當(dāng)Go 語言的語法和結(jié)構(gòu)趨于穩(wěn)定,并發(fā)布了 Go 1 時(shí),他覺得應(yīng)該轉(zhuǎn)回來,重寫他的 Go 語言程序。這回,他想起來了當(dāng)初為什么想用 Go 來開發(fā)。關(guān)于Go 語言的爭(zhēng)論Fils 說,在 Java 里,很多東西都需要有一定的模板套路,這是很討厭。他說 Scala 和 groovy 要好一些,但仍然是個(gè)問題。Go 語言給人的感覺像一個(gè)動(dòng)態(tài)的類型化語言,F(xiàn)ils 說,但 Go 語言里靜態(tài)類型特征并不像 Java 里那樣明顯。Go 語言的垃圾收集管理,比 JVM 要好的多。跟 Groovy 這樣的動(dòng)態(tài)語言比起來尤其能看出這點(diǎn)。Fils 在評(píng)論中說 Go 語言的速度比其它語言快很多倍。它運(yùn)行速度快但不影響負(fù)載量。它編譯所需的時(shí)間很短,他在開發(fā)時(shí)能邊開發(fā)邊編譯,就像動(dòng)態(tài)語言那樣迅速。最后,他說使用 Go 語言要比使用 Node.js,Java 或以 Java 為基礎(chǔ)的語言,Ruby on Rails 等語言要有趣的多。在開發(fā) JVM 平臺(tái)上的應(yīng)用時(shí),我總感覺自己是一個(gè)系統(tǒng)管理員,而不是一個(gè)開發(fā)者。我要修改堆空間,我要研究負(fù)載均衡或內(nèi)存問題或其它的資源管理問題。而使用 Go 語言,我不需要考慮這些。我開發(fā),編譯,測(cè)試,運(yùn)行,部署,非常的享受。請(qǐng)注意,并不是所有的人都喜歡 Go 語言。你可以看一看 Shaneal Manek 的關(guān)于 Go 語言的垃圾收集系統(tǒng)以及腳本語言和編譯型語言之間比較的評(píng)論。Go 語言能走向主流嗎?你的期望是什么?按照 RedMonk’s Stephen O’Grady 的說法,對(duì)于 Go 語言來說現(xiàn)在還非常年輕。通常,程序員會(huì)分成兩個(gè)陣營:要么歡迎底層語言和腳本型/垃圾收集器型語言的融合,要么是反對(duì)這樣做。對(duì)于后者,毫無意外的,他們是C語言的堅(jiān)定擁護(hù)者。圍繞著 Go 語言有很多的爭(zhēng)論,這不令人吃驚,任何一種語言都是這樣。而令人吃驚的是目前 Go 語言在程序員中獲得了相當(dāng)?shù)奈Α’Grady 二月份在 RedMonk 編程語言分級(jí)中把 Go 語言放入了第二梯隊(duì)。但是,他說,考慮一下 Go 語言是如此的年輕,“即使是目前這種成績(jī)也是讓人相當(dāng)?shù)挠∠笊羁塘恕!惫雀枰呀?jīng)發(fā)布了 Go 語言的穩(wěn)定版本,并且在 Google App Engine 支持部署這種語言的應(yīng)用,這將給 Go 語言帶來更多的吸引力。Go 語言能否成為一種“主流”語言,這需要由時(shí)間來判定。不過,看起來除谷歌之外還有很多公司對(duì)這種語言也很感興趣,比如 Engine Yard 等公司。那些對(duì)目前的現(xiàn)存的語言不太滿意的程序員大概對(duì) Go 語言都在拭目以待。如果你在使用 Go 語言或之前簡(jiǎn)單涉略過它,你需要注意,Go 1 版引入了不少的變化。然而從 Go 1 版開始,Go 語言的變化將會(huì)遵循它的規(guī)格說明書進(jìn)行。根據(jù) Go 語言的開發(fā)人員的透露,“也許在某個(gè)時(shí)間,我們會(huì)推出 Go 2 的規(guī)范,但在此之前,用 Go 語言編寫的程序在今后的 Go 1 版本(Go 1.1, Go 1.2 等)上都能正確的運(yùn)行?!蹦阌肎o 語言開發(fā)過什么項(xiàng)目嗎?

goroutine相比java 多線程N(yùn)IO有何優(yōu)勢(shì)

NIO(非阻塞IO)是一種IO編程模型,Golang中的IO底層實(shí)現(xiàn)方式和java NIO模型一致,通俗點(diǎn)說就是都采用了EPOLL。 你在使用golang讀文件的時(shí)候,goroutine 會(huì)默默的掛起,只是你不知道,當(dāng)讀完畢了,goroutine 再次恢復(fù),但你不用擔(dān)心,goroutine 的掛起和恢復(fù)沒有java線程那樣可怕,你可以認(rèn)為goroutine 的掛起和恢復(fù)就是保存和恢復(fù)幾個(gè)變量的值,其實(shí)也是這樣的。

剩下的就是goroutine 和 java線程的區(qū)別了,goroutine是用戶態(tài)的線程切換,java采用的是系統(tǒng)線程切換,用匯編語言描述是一個(gè)(java)調(diào)用int 80軟中斷,一個(gè)沒有。 意味著goroutine更輕量級(jí),可以同時(shí)相應(yīng)成千上萬的線程切換,java你創(chuàng)造上千個(gè)線程就有些吃力了。

因?yàn)閖ava線程不能創(chuàng)造過多的線程,如果同時(shí)處理上萬上千的請(qǐng)求時(shí)候,就要考慮在幾十個(gè)線程來處理上萬上千的請(qǐng)求,這就出現(xiàn)了很多請(qǐng)求和線程不可能一一對(duì)應(yīng),所以通常做法是每個(gè)線程分別處理單個(gè)請(qǐng)求各個(gè)階段。好比流水線,請(qǐng)求是要加工的商品,每個(gè)線程處理一道工序,這樣做的好處是每人都做自己熟悉的,對(duì)于程序來說每個(gè)線程執(zhí)行的代碼永遠(yuǎn)都是自己很短的一塊,這樣根據(jù)局部?jī)?yōu)化原理,更具備CPU,內(nèi)存親和力,利于JIT。說這樣多,就是說如果線程和請(qǐng)求不能一一對(duì)應(yīng),流水線式的并發(fā)編程很麻煩,閱讀性也很差,通常是線程A里面一段邏輯代碼,線程B又有另一處處理的邏輯代碼。

由于goroutine 的輕便,你可以將請(qǐng)求和goroutine 一一對(duì)應(yīng)起來,不用考慮將請(qǐng)求在線程之間換來換去,只關(guān)心你的業(yè)務(wù)邏輯,這就是goroutine 的好處。

總結(jié):

golang的goroutine讓你比java更容易編寫并發(fā)程序,但性能不會(huì)有差別(目前來說,golang性能還不能和java比,看過代碼就知道了,GC弱到爆),代碼不會(huì)減少,該寫的邏輯還得寫。ps,其實(shí)golang的(sched)go程切換代碼雖然原理和java的fork-join框架一樣,但是fork-join比golang的sched代碼牛逼不少,開始膜拜Doug Lea吧,golang還有很長(zhǎng)的路要走。

如何正確摧毀的pthreadmutex

1.基本的問題必須是從緩存中移除,其目的在于,需要在高速緩存級(jí)別,而不是對(duì)象的水平同步。 一種方式是通過具有對(duì)整個(gè)高速緩存僅在查找持有全局鎖,一旦該對(duì)象的鎖已被獲取將被丟棄。這把鎖可以是一個(gè)讀寫鎖,舉辦寫作只有一個(gè)線程將要?jiǎng)h除的對(duì)象。所以一個(gè)線程,希望使用一個(gè)緩存對(duì)象會(huì)做:pthread_rwlock_rdlock(cache_lock);

exampleObj * obj = Lookup(key);

pthread_mutex_lock(obj-mutex);

pthread_rwlock_unlock(cache_lock);

/* Do some work on obj */

pthread_mutex_unlock(obj-mutex);

并且一個(gè)線程要摧毀一個(gè)緩存對(duì)象會(huì)做:pthread_rwlock_wrlock(cache_lock);

exampleObj * obj = Lookup(key);

pthread_mutex_lock(obj-mutex);

Remove(key);

pthread_rwlock_unlock(cache_lock);

/* Do some cleanup work on obj */

pthread_mutex_unlock(obj-mutex);

pthread_mutex_destroy(obj-mutex);

(這里的Remove()函數(shù)從緩存中刪除的函數(shù) CodeGo.net,以便后續(xù)Lookup()函數(shù)不能返回它)。

2. 這是未定義的行為(一)企圖摧毀鎖定mutex鎖,或(b)引用銷毀mutex以外調(diào)用pthread_mutex_init重新創(chuàng)建它(請(qǐng)參閱,破壞你的共享mutex體的線程將要參加的其他鎖定它,無論是(1)破壞首先發(fā)生,其他線程調(diào)用未定義的行為試圖鎖定的(b)或(2)鎖定另一個(gè)線程首先發(fā)生和銷毀線程調(diào)用(一)未定義行為。 你需要改變你的設(shè)計(jì),使在積極爭(zhēng)奪一個(gè)mutex體是永遠(yuǎn)不會(huì)被破壞。對(duì)于你的榜樣,你可以破壞共享mutexmain之后所有的線程都接合。對(duì)于您所描述的程序,你可能需要插入一個(gè)引用計(jì)數(shù)的對(duì)象。

3. 我想擺脫緩存中的對(duì)象?,F(xiàn)在如何摧毀/freemutex是否正確? pthread_mutex_destroy說,我們應(yīng)該pthread_mutex_destroy而mutex鎖。比方說,一個(gè)線程決定摧毀它需要使其釋放鎖,并做了pthread_mutex_destroy摧毀鎖定的對(duì)象。恰好在等待對(duì)象鎖的其他線程是什么? 嗯,我希望我得到你的本意吧,我有確切的問題。反正我認(rèn)識(shí),后來我是愚蠢的:抱怨的未定義行為pthread_mutex_*函數(shù)后,pthread_mutex_destroy()約SEGFAULTS訪問后的一個(gè)指針時(shí),free()。 大多數(shù)C程序模擬環(huán)繞模式,每一個(gè)程序必須確保這類破壞后不訪問。良好的C程序?qū)⒎乐贡坏教巶鞑サ闹羔樤O(shè)計(jì),這樣的破壞只發(fā)生在明確的地方,在沒有其他變量包含一個(gè)指針了。這不是在垃圾收集的語言都關(guān)心的問題。 解決方法1:使用引用計(jì)數(shù)就像是做了分配。該refcounter通過atomicity函數(shù)訪問。 (使用glib,它包含了偉大的,便攜式的東西) 溶液1B:使用引用計(jì)數(shù)像它完成分配,sperate種工人是從那些沒有在后來的弱引用的重要的,以便它們不妨礙對(duì)象的破壞。 解決方法2:不要破壞mutex。為什么要節(jié)約RAM的trouble呢?只是要像128K對(duì)象的全局靜態(tài)數(shù)組。添加至極表示對(duì)象的狀態(tài)。 破壞,而不是僅僅與設(shè)置狀態(tài)變量,以及在訪問一個(gè)對(duì)象在“關(guān)閉”狀態(tài)的線程的打印錯(cuò)誤。 解決方案3-硬盤的方式:不要做并發(fā)。結(jié)合該處理器的系統(tǒng)上的號(hào)碼相匹配的線程池,使用非阻塞IO,消息對(duì)象和狀態(tài)機(jī)的設(shè)計(jì)。隊(duì)列的每個(gè)任務(wù),并讓僅添加到隊(duì)列中的其他的隊(duì)列。把隊(duì)列中的'選擇'或'的pollfd'包含的套接字/ filedescriptors集。洗牌大數(shù)據(jù)(狀態(tài)機(jī)的3D,使用結(jié)構(gòu)與atomicityrefcounter和寫復(fù)制語義。 這在大多數(shù)情況下是最高效的,穩(wěn)定的和可維護(hù)的解決方案。 如果你做了什么與表現(xiàn),認(rèn)為atomicity操作兩次。它們可以比mutex更昂貴。

4. 我不能與CAF在此同意。我們已經(jīng)做了某些類似(如參考ifData_createReference&放大器; ifData_removeReference例程ifMIB.c)。其基本思路是保持一個(gè)全局鎖來保護(hù)整個(gè)對(duì)象列表,guard在列表中個(gè)別條目的對(duì)象級(jí)鎖。 當(dāng)我們要在列表中創(chuàng)建一個(gè)新的條目,以WRITE鎖定在名單上添加一個(gè)新條目,使條目persistent添加到所有的單體。并釋放鎖列表。 當(dāng)我們來看看,上/從訪問列表中的條目,把名單上的讀鎖和搜索條目.a旦我們找到入口,采取目標(biāo)鎖定在讀模式下進(jìn)行只讀操作/寫模式把對(duì)象鎖定為修改對(duì)象條目。現(xiàn)在,松開列表鎖?,F(xiàn)在,一旦我們完成了目標(biāo)進(jìn)入釋放對(duì)象鎖并進(jìn)行處理。 當(dāng)對(duì)象進(jìn)入,必須從列表中刪除,以列表的寫鎖。搜索和查找列表中的對(duì)象項(xiàng)。取對(duì)象條目的寫鎖定,這將確保你是唯一的目標(biāo)?,F(xiàn)在,請(qǐng)從清單中的條目,因?yàn)闆]有人可以更多在列表中搜索它。并釋放對(duì)象鎖然后,松開列表鎖。現(xiàn)在銷毀對(duì)象和釋放對(duì)象的資源。

go語言 ioutil.ReadFile 與ioutil.ReadAll差別

?? 當(dāng)讀取91.2 MB文件時(shí),read1耗時(shí)43ms,read2耗時(shí)99ms。

查看源碼:

讀取文件主要是通過 Read(p []byte) (n int, err error) :

官方文檔中關(guān)于該接口方法的說明:

結(jié)論:

??ReadFile(filename string)方法之所以速度快的原因就是先計(jì)算出file文件的size,在初始化對(duì)應(yīng)size大小的buff,傳入ReadRead(p []byte) 來讀取字節(jié)流

「測(cè)試開發(fā)全?;?Go」(1) Go語言基本了解

作為一個(gè)測(cè)試,作為一個(gè)測(cè)試開發(fā), 全?;?管理 是我們未來的發(fā)展方向。已經(jīng)掌握了Java、Python、HTML的你,是不是也想了解下最近異常火爆的Go語言呢?來吧,讓我們一起了解下。

Go 是一個(gè)開源的編程語言 ,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易。

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時(shí)候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個(gè)活躍的社區(qū)。這三個(gè)人都是計(jì)算機(jī)界的大神,有的參與了C語言的編寫,有的還是數(shù)學(xué)大神,有的還獲得了計(jì)算機(jī)最高榮譽(yù)-圖靈獎(jiǎng)。

接下來說說 Go語言的特色 :

簡(jiǎn)潔、快速、安全

并行、有趣、開源

內(nèi)存管理、數(shù)組安全、編譯迅速

Go語言的用途 :

Go 語言被設(shè)計(jì)成一門應(yīng)用于搭載 Web 服務(wù)器,存儲(chǔ)集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。

對(duì)于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對(duì)于 游戲 服務(wù)端的開發(fā)而言是再好不過了。

Go語言的環(huán)境安裝:

建議直接打開 官方地址因?yàn)閴Φ脑虼虿婚_

因?yàn)槲矣玫氖莣indows系統(tǒng),這里主要講下Windows系統(tǒng)上使用Go語言來編程。

Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來安裝。

默認(rèn)情況下 .msi 文件會(huì)安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環(huán)境變量中。添加后你需要重啟命令窗口才能生效。個(gè)人建議還是安裝到 Program Files文件夾中。

使用什么開發(fā)工具來對(duì)Go語言進(jìn)行編寫:

個(gè)人建議用VS code, 也可以用Sublime Text來編輯。如果你之前看了我講的HTML語言的學(xué)習(xí),肯定已經(jīng)下載了VS code. 那么這時(shí)你需要在VS code中下載Go語言的擴(kuò)展插件。

這里有一個(gè)巨大的坑,就是在下載Go的插件和依賴包時(shí),會(huì)提示一些包沒有。主要是因?yàn)橄螺d的依賴包部分被墻了,只能想別的辦法去下載。

建議參考網(wǎng)頁:

解決vscode中g(shù)olang插件安裝失敗方法

在學(xué)習(xí)go的過程中,使用的是vscode,但是一直提示安裝相關(guān)插件失敗,然后上網(wǎng)查方法,基本上是叫你建立golang.org目錄什么的,結(jié)果全是錯(cuò)的,而且都是抄襲,很煩。無意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫下正確的解決方法,希望對(duì)你有所幫助,也可以點(diǎn)開原博主鏈接參考:

Go有一個(gè)全球模塊代理,設(shè)置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶打開Powershell,一個(gè)藍(lán)色的界面,注意不是cmd!不知道的直接打開window下面的搜索,然后輸入powershell,搜索出來就可以了。

$env:GO111MODULE=“on”

$env:GOPROXY=“”

go env -w GOPROXY=

go env -w GOPRIVATE=*.corp.example.com

然后我們打開VsCode界面,下面會(huì)提示安裝插件,我們選擇Install ALL,就會(huì)安裝成功

當(dāng)你在運(yùn)行Go語言程序時(shí),提示所有的插件包都已經(jīng)安裝成功了時(shí),就可以正常使用了,要不然一堆報(bào)錯(cuò)會(huì)讓你非常心煩。

好了,今天先到這里,晚安、下班~


分享題目:go語言非阻塞io golang系統(tǒng)調(diào)用阻塞問題
URL鏈接:http://weahome.cn/article/hpjiod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部