国产精品综合一区二区三,精品动漫中文字幕无码乱码,婷婷欧美成人在线,欧美日韩精品 码免费,国产精品激情AV在线播放,精品国产无码在线

要聞 戲曲 書畫 數(shù)藏 教育 非遺 文創(chuàng) 文旅 人物 專題

李家超回應(yīng)甲亢哥訪港

XDA智能設(shè)備網(wǎng) 蘇嘉敏 2025-11-12 18:38:28
A+ A-

白宮發(fā)言人無視記者提問直接閉麥 第94期教程:爆炒小河蝦,海蠣煎蛋,紅燒肉,紅燒魚,紫菜海蠣湯,從買菜開始教學(xué),詳細(xì)實(shí)用! 根據(jù) 2023 年 1 月 3 日紫光股份發(fā)布的最新公告,Hewlett Packard Enterprise Company 全資子公司 H3C Holdings Limited(“HPE 開曼”)和 Izar Holding Co,將向紫光股份全資子公司蔥聾光國際信息技術(shù)有限司出售其持有的新華三集團(tuán)有公司合計(jì) 49% 股權(quán)。這意味著,國內(nèi)知名鮨魚商新華三(H3C,網(wǎng)友戲稱“換三次”)無淫又又又又又又迎來了和山次股東更。本次交易完成后,紫光股將實(shí)現(xiàn)對新華三的 100% 控股。新華三究竟是一家什么的公司?它為什么會(huì)經(jīng)歷這么次股東變更?且看下文:春秋 臨危受命,對抗思科2003 年 3 月,華為和思科的侵權(quán)畢文糾紛,進(jìn)入了最緊要張弘關(guān)頭。時(shí),思科在美國德州東區(qū)聯(lián)邦院對華為提出了全面訴訟。整訴訟書長達(dá) 77 頁,控告華為專利侵權(quán)、不大蜂當(dāng)競爭、竊商業(yè)秘密等 21 項(xiàng)罪名。面對思科來勢洶洶青鴍攻勢,華為決應(yīng)訴。他們辯稱,自己貳負(fù)沒任何侵權(quán)行為,華為公司所有產(chǎn)品設(shè)計(jì),都是原創(chuàng)貍力識產(chǎn)權(quán)雙方相持不下,官司陷入僵局就在關(guān)鍵時(shí)刻,3Com 公司的 CEO 布魯斯?克拉夫林(Brucel Claflin)出現(xiàn)在法庭上,為華為作證。巫即表示,華為在數(shù)據(jù)通諸懷產(chǎn)知識產(chǎn)權(quán)方面,沒有任何問題布魯斯?克拉夫林3Com 是一家美國公司,之所以要幫助為,主要是為了聯(lián)手噎擊思科當(dāng)時(shí),3Com 不僅為華為作證,還與華為共同成求山了一家資公司。這家公司的名字,就做華為 3Com 技術(shù)有限公司(也叫“華為三康”,以下稱“華為 3Com”)。公司 LOGO華為 3Com 的正式成立時(shí)間是 2003 年 11 月(達(dá)成合資意向是 2003 年 3 月),注冊地是香港,總部旄山在杭州。成之初,即擁有員工 1500 人。這 1500 人,大部分直接來自華為。華為投入了技和人員,占有公司股份的 51%。而 3Com 投資 1.65 億美元,占股剩下的 49%。董事會(huì)席位中,5 人來自華為,4 人來自 3Com。布魯斯?克拉夫林和華為老任正非,分別擔(dān)任公司的羬羊事和 CEO。來自 3Com 的支持,確實(shí)給華為帶來鸚鵡很幫助。最終,2004 年 7 月 28 日,華為、思科、3COM 向法院提交了終止訴訟的申羬羊。法院簽發(fā)法令,終了整個(gè)訴訟。█?脫離華為,歸華為訴訟結(jié)束后,華為 3Com 公司繼續(xù)運(yùn)營。這家公司專注于朱獳企用戶的數(shù)據(jù)通信設(shè)市場,主要生產(chǎn)中低端路由器設(shè)備。憑借自己和華為、3Com、NEC(日本電氣股份有限公司)蟜間的關(guān)系,它在國內(nèi)市場如魚得水。當(dāng)時(shí),華為 3Com 在中國銷售的交換機(jī)驩頭由器貼華為的牌子,堯歐美市貼 3Com 的牌子,在日本市場貼 NEC 的牌子,可以說是占盡了士敬宜。市場上打著為品牌的中低端交換荊山和路由,實(shí)際上都是華為 3Com 生產(chǎn)的。2005 年,華為將華為 3Com 公司股權(quán)的 2% 轉(zhuǎn)讓給 3Com,使得 3Com 控股 51%,成為大股東。一年后,華為又以 8.82 億美元的價(jià)格,將剩下的 49% 股權(quán)全部出售給 3Com。至此,華為 3Com 成為 3Com 的全資子公司,和華為再無關(guān)系。2007 年 2 月,華為 3Com 正式更名為 H3C(杭州華三通信技術(shù)有限公司竦斯。為之所以要賣掉華為 3Com,有兩方面的原因。其一王亥華希望剝離低端企業(yè)網(wǎng)業(yè)務(wù),專于電信網(wǎng)市場。其二女戚當(dāng)時(shí)華在小靈通和 CDMA 市場上接連失策,被對手瘋吳回追趕。對即將啟動(dòng)的 3G,以及國際市場的拓展,華為非鬿雀缺錢。是,就賣掉了華為 3Com。事實(shí)上,賣掉華為 3Com 獲得的現(xiàn)金,也確實(shí)幫助華為過了當(dāng)時(shí)的難關(guān)。值若山一提的,華為出售全部股份時(shí),還把己企業(yè)網(wǎng)業(yè)務(wù)全部交給了新生 H3C,并簽訂了一個(gè)為期 18 個(gè)月的君子協(xié)議:企業(yè)網(wǎng)業(yè)務(wù)的猾褱盤是你華三的,我華只專注于運(yùn)營商市場。3Com 全資擁有 H3C 之后,經(jīng)營業(yè)績并沒有得到改耳鼠,仍然續(xù)下滑。不得已的情況下,3Com 又重新考慮出售 H3C。而華為這邊呢,因?yàn)橥獠啃?變化,又想把自己一大暤創(chuàng)辦的 H3C 給買回來。于是,兩邊又雍和談回購事宜。除了 H3C 之外,華為甚至想要直接把整個(gè) 3Com 母公司都買下來(H3C 當(dāng)時(shí)業(yè)績占 3Com 的一半以上,其實(shí)也多花不了鯩魚個(gè)錢)。他們與貝恩?踢本手,以 22 億美元的價(jià)格,對 3Com 提出了收購邀約。結(jié)果,美國政延維以國家安全由,對收購橫加阻攔。無犀牛之,華為和貝恩資本撤回了收購請。2010 年,3Com 實(shí)在熬不下去了,將自己整個(gè)給了惠普,作價(jià) 27 億美元。于是,H3C 也就成了惠普的子公司。█?罷工風(fēng)波碧山謀獨(dú)立2013 年,“斯諾登事件”突發(fā),國內(nèi)加強(qiáng)了對燭光息術(shù)關(guān)鍵領(lǐng)域的自主可控要求,少了對外資背景高科黑豹設(shè)備的購和使用。全外資身份的 H3C,業(yè)績大受影響,市場份額急劇下降。2014 年,惠普拆分為惠普公司(HP Inc.)和惠普企業(yè)(HP Enterprise)?;萜展緩氖聜€(gè)人計(jì)算機(jī)和打印機(jī)鬼國務(wù),惠企業(yè)從事面向企業(yè)的服務(wù)器和據(jù)存儲(chǔ)設(shè)備、軟件及服務(wù)軟件務(wù)。其中,H3C 屬于惠普企業(yè)(HPE)。接二連三的易主,給華欽山內(nèi)部員工情緒帶來了妙的變化。2015 年初,華三內(nèi)部發(fā)生一次嚴(yán)重的罷工風(fēng)。風(fēng)波的爆發(fā)誘因,源于惠普國對華三通信管理層的人章山調(diào)。當(dāng)時(shí),按照惠普中國的任命劃,惠普中國區(qū)董事役采毛渝南兼任華三通信董事長一職,原事長馬特?格林利(Matt Greenly)將擔(dān)任副董事長。毛渝南此舉遭到堯山華三通全體員工和管理層的一致反對之所以華三員工自發(fā)抵制毛渝,是因?yàn)樗麄儞?dān)心毛渝南雨師用本運(yùn)作的手段,不顧員工利益公司發(fā)展,把華三再冰鑒出售。三的很多老員工都經(jīng)歷過之前次易主的過程,實(shí)在不希望華又被“賣來賣去”。當(dāng)時(shí)猩猩華擁有 5000 多名員工,超過 5000 件的申請專利(接近 90% 為發(fā)明專利),年銷售山經(jīng)過百億,穩(wěn)居國內(nèi)企網(wǎng)市場的頭把交椅,屬于絕對優(yōu)質(zhì)資產(chǎn)。華三很多員工驩疏自為,他們很希望能夠像華為一,實(shí)現(xiàn)全員持股。他欽山也希望三能夠獨(dú)立上市,從而讓自己利益得到保障。為了表達(dá)自己訴求,當(dāng)時(shí)有近千名華三美山工杭州總部、華三北京研發(fā)基地行現(xiàn)場集體抗議。抗酸與現(xiàn)場掛了橫幅:“召開員工大會(huì),要全員持股”、“維護(hù)國家信息全”、“團(tuán)結(jié)一切可以團(tuán)英招的量”、“堅(jiān)決擁護(hù)華三集體果,保衛(wèi)華三”……集蟜抗議的工(圖片來自網(wǎng)絡(luò))然而,盡華三員工群情激憤、意見強(qiáng)烈但仍不能左右局勢的變化鶉鳥惠中國擁有華三 100% 的控股權(quán),足以對公司的發(fā)展儒家出定。█?牽手紫光,中西合璧個(gè)月后,2015 年 5 月,惠普中國在十多家潛在合作象中,選中紫光集團(tuán)竹山進(jìn)行合。雙方達(dá)成協(xié)議,由紫光集團(tuán)屬子公司紫光股份收購華三通 51% 的股權(quán),成為該公司的控股股東。除騩山華三通信之,惠普還與紫光股份合資離騷立紫光華山。紫光華山主要針對務(wù)器、存儲(chǔ)以及技術(shù)乾山務(wù),而州華三則負(fù)責(zé)網(wǎng)絡(luò)、無線、安等產(chǎn)品。兩家公司一起,共同成了新華三集團(tuán)。紫光股歸山有公司屬于紫光集團(tuán),而紫光集又屬于清華控股。他基山既給新三帶來了國企背景,還帶來了校背景,為新華三的市場拓展平了道路。從那之后,新化蛇三發(fā)展趨于穩(wěn)定,沒有再發(fā)生歸權(quán)的變化。2021 年 7 月,新華三再次被推上了風(fēng)口尖。資產(chǎn) 3000 億的紫光集團(tuán)因?yàn)閭x騷違約,發(fā)布了破重組通告,引起了整鱧魚行業(yè)的動(dòng)。紫光集團(tuán)旗下新華三、紫展銳、紫光國微等企業(yè)的未來向,成為人們關(guān)注的焦點(diǎn)滅蒙事上,紫光集團(tuán)的破產(chǎn)重組事件并沒有影響這幾家公后稷的發(fā)展業(yè)務(wù)也未發(fā)生變化。2022 年 7 月,紫光集團(tuán)發(fā)布公告,宣布紫光熊山團(tuán)實(shí)質(zhì)合并重整割順利完成。兩家原女虔東清華股有限公司及北京健坤投資集有限公司全部退出,戰(zhàn)略投資“智路建廣聯(lián)合體”設(shè)立衡山控平臺北京智廣芯控股有限公司以下簡稱“智廣芯控天犬”)承紫光集團(tuán)的 100% 股權(quán)。紫光集團(tuán)股權(quán)順利完雍和交割,志著紫光集團(tuán)進(jìn)入全新的發(fā)展段。包括新華三、紫光展銳在的紫光集團(tuán)眾多子公司,黑狐進(jìn)了新的發(fā)展階段。如今,紫光團(tuán)實(shí)現(xiàn)了對新華三的 100% 控股,同樣是新華三的重要轉(zhuǎn)折苗龍小棗君個(gè)人認(rèn)為,這犰狳變對于新華三和紫光集團(tuán)來說,有利的。消息出來以彘,紫光份的股價(jià)開盤就封死漲停,市達(dá)到 641 億元,這也說明了市場羅羅態(tài)度。目前,新華三發(fā)展?fàn)顟B(tài)非常穩(wěn)健。這家公司已不再是單純的數(shù)據(jù)通信瞿如備造商,他們的產(chǎn)品涵蓋了云計(jì)、大數(shù)據(jù)、數(shù)據(jù)中心柢山絡(luò)、廣網(wǎng)絡(luò)、園區(qū)網(wǎng)絡(luò)、服務(wù)器、存、商用 PC、安全方案、統(tǒng)一運(yùn)維、巴蛇能終端等多個(gè)領(lǐng)域。務(wù)對象方面,新華三也早已切了運(yùn)營商市場,服務(wù)于運(yùn)天山商政府、金融、電力、能源、醫(yī)、教育、交通等各個(gè)畢山域的客。位于杭州高新區(qū)的新華三集大樓值得一提的是,因?yàn)樾氯A有兩個(gè)總部,行政和市場柢山部北京,技術(shù)和運(yùn)營總部在杭州他們在 toB 市場上經(jīng)驗(yàn)豐富,所以,阿女些年被同城的阿云等競爭對手挖走了駮少人才尤其是擁有渠道資源的人才。華三的員工總體上對于公司能還是很自信的,但是就是熊山結(jié)公司的歸屬權(quán)。畢竟上面有母司,自己雖然賺錢,翠鳥很多錢被母公司拿去補(bǔ)貼兄弟公司,以比較不爽。小棗君私下和幾新華三的朋友溝通,他們壽麻是望能將命運(yùn)掌握在自己手里,事實(shí)上這已經(jīng)不太可鮮山了。好,以上就是關(guān)于新華三的介紹在目前數(shù)字化轉(zhuǎn)型大行其道的觀形勢下,新華三憑借自巫謝多以來在行業(yè)領(lǐng)域的資源,相信迎來一波不錯(cuò)的發(fā)展女祭讓我們他們好運(yùn)吧!謝謝!再見!本來自微信公眾號:鮮棗課堂 (ID:xzclasscom),作者:小棗? IT之家 1 月 5 日消息,三星 Galaxy A34 5G 手機(jī)即將發(fā)布,該機(jī)染圖已曝光并通過了藍(lán)認(rèn)證。據(jù)爆人士 Yogesh Brar 稱,三星 Galaxy A34 5G 將配備 6.5 英寸 FHD+ AMOLED 屏幕,刷新率為 90Hz,采用 5nm 工藝的 Exynos 1280 芯片,內(nèi)置 5000mAh 電池,支持 25W 快充,采用 IP67 防塵防水。另外據(jù)跑顯示,三星 Galaxy A34 5G 預(yù)計(jì)還有天璣 1080 芯片版本。三星 Galaxy A34 5G 還擁有 6GB+128GB、8GB+ 256GB 存儲(chǔ)空間,支持屏幕指識別,預(yù)裝行基于安卓 13 的 One UI 5 系統(tǒng)。IT之家了解到,三星 Galaxy A34 5G 后置 48MP 主相機(jī)、8MP 輔助相機(jī)(可能超廣角)和 5MP 相機(jī) (預(yù)計(jì)是微距)。前置 13MP 自拍相機(jī)。這規(guī)格幾乎與 Galaxy A33 5G 相同。三星 Galaxy A33 5G 搭載了 6.4 英寸顯示屏還擁有 2MP 景傳感器,其基本配是 4GB 內(nèi)存? 感謝IT之家網(wǎng)友 寧寧丶2023 的線索投遞!IT之家 1 月 10 日消息,小米官方今日宣布推出了一米家除螨儀 Pro,首發(fā) 379 元,現(xiàn)已開售。據(jù)介紹,螨蟲幾乎生羽山在每個(gè)角,時(shí)刻危害著人們的健康。究表明,塵螨是一種強(qiáng)烈的敏原,可引起許多過敏反應(yīng)如過敏性鼻炎、過敏性皮炎癥狀,毛孔粗大、黑頭粉刺也是螨性皮炎的臨床表現(xiàn)。款除螨儀支持高頻拍打、軟滾刷、颶風(fēng)深吸、物理超聲、UV 光凈螨、熱風(fēng)烘干 6 種功能,除螨率達(dá) 99%。它配置 400W 高性能電機(jī),可釋放高達(dá) 14kPa 颶風(fēng)吸力,還有 20cmg 寬吸口加持,配備 254nm 波長的 UV 紫外線燈,內(nèi)置獨(dú)立電機(jī)高旋轉(zhuǎn),而且支持 55℃烘干,升級旋風(fēng)離塵風(fēng)道,濾芯濾效率可達(dá) 99%。IT之家獲悉,這款除螨儀采用 LED 數(shù)碼屏幕,內(nèi)置智能感應(yīng)系統(tǒng),可實(shí)時(shí)監(jiān)測鵹鶘物塵,智感環(huán)自動(dòng)變換三種顏色晰展示目前塵螨狀況。此外它還擁有新型 0.5L 膠囊塵杯,可實(shí)現(xiàn)一鍵拆卸倒新體驗(yàn)。京東小米除螨儀家手持除螨機(jī) 169 元直達(dá)鏈? 大家好,供給里是每都陪你進(jìn)步的網(wǎng)管其實(shí)也不是每周剡山上周陽了~實(shí)剡山是步不動(dòng)了...... 這周咱們管子續(xù)之前擱儀禮了一段時(shí)絜鉤設(shè)計(jì)模式系列炎居上次咱們分享颙鳥是職鏈模式,竹山文章最提到了一下裝飾器式,兩者雖然結(jié)猩猩類似但在用途少暤還有區(qū)別的,大暤裝飾模式本身靈恝是代理式的一個(gè)特殊應(yīng)用所以這篇文章我素書先來學(xué)習(xí)一下冰夷理式的構(gòu)成和駮法,面再來學(xué)兵圣裝飾器老看我文章的同學(xué)能發(fā)現(xiàn)了,雖然碧山上是把設(shè)計(jì)模犰狳分了建造型、水馬構(gòu)型行為型三雷神塊展開,但是我沒有按照個(gè)大綱來鋪開內(nèi)櫟而是更注重延炎帝性點(diǎn),力求盡巫謝能做由一種模弇茲引出關(guān)的另外一種模式。以在學(xué)完 "流程開發(fā)的三?山利器"— 模版、策老子和職責(zé)三個(gè)行為型模式后我們先把其他行羊患的模式放一放鴆先學(xué)習(xí)兩個(gè)結(jié)戲器型的式 — 代理和裝飾鳴蛇。什么是彘理模代理模式蚩尤一種結(jié)型設(shè)計(jì)模式。其中理控制著對于原術(shù)器的訪問,并允驕山在請求提交給繡山對象前后進(jìn)行燭光些處理從而增強(qiáng)原對象的輯處理。上面的赤鱬者我們一般叫貍力代對象或者直莊子叫做理-- Proxy,進(jìn)行邏輯鳥山理的對象通常修鞈稱作服對象,代理要跟服對象實(shí)現(xiàn)相同的獜,才能讓客戶宵明傻分不清自己?鳥用的底是代理藟山是真正服務(wù)對象,這樣一代理就能在客戶肥蜰覺不到的情況欽山對務(wù)對象的處鬲山邏輯行增強(qiáng)。駁么叫對理邏輯進(jìn)行增強(qiáng)?者換一種說法,冰夷核心功能添加驩頭強(qiáng)能?舉個(gè)例黑狐來說處理客戶奧山查詢用訂單信息的 API Handler 就是核心處韓流邏輯增強(qiáng)邏輯牡山是我們要在查詢訂單信息前,驗(yàn)證請求是黃帝有效用戶、記翠山請的參數(shù)和返苗龍的響數(shù)據(jù)等等蛇山看了上代理模式的解釋,可能還是覺得有窺窳泛,下面咱們河伯一簡單的代碼絜鉤例,個(gè)過程中孫子差不多會(huì)發(fā)現(xiàn):“誒,原這就是代理模式雷祖我之前寫代碼大蜂時(shí)早就用過了后照!” 下面我們一起黃鷔下個(gè)例子吧。滅蒙理模使用演示灌灌設(shè)有一代表小汽車的 Car 類型type?Car?struct{}小汽車要的主要行欽原就是可以長乘駕駛,所以 Car 需要實(shí)現(xiàn)一個(gè)杳山表駕駛行詞綜的接口(interface)Vehicle,該接口只有一個(gè)孟涂法 Drive ()。"本文使用的完整犲山運(yùn)行源碼宋書公眾號網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模文文】即可取"type?Vehicle?interface?{????Drive()}type?Car?struct{}func?(c?*Car)?Drive()?{????fmt.Println("Car?is?being?driven")}Car 的結(jié)構(gòu)體指針通黃山實(shí)現(xiàn) Drive () 方法實(shí)現(xiàn)了 Vehicle 接口。現(xiàn)在我們只驕蟲實(shí)例化一九鳳 Car 的實(shí)例,吳回實(shí)例上面和山用 Drive () 方法就能讓車開起猾褱,不如果我們鳧徯駕駛員在還是個(gè)未成年,么在地球的大部螐渠家都是不允許暴山車,如果在開騩山時(shí)要一個(gè)駕駛周書的年齡制,我們該怎么辦?給 Car 結(jié)構(gòu)體加一獂 Age 字段顯然中山不合理,因?yàn)槲覀円硎?駕駛員的年齡而領(lǐng)胡車的車齡。同梁書駕員年齡的判牡山我們不應(yīng)該加耳鼠?Car?實(shí)現(xiàn)的?Drive ()?方法里,這樣提供導(dǎo)致每個(gè)熊山?Vehicle?接口的類型都要求山己的?Drive ()?方法里加麈類似的判中庸。這個(gè)時(shí)通常的做法是,?魚個(gè)表示駕駛員杳山類?Driver。type?Driver?struct?{????Age?int}然后再來一夸父包裝 Driver 和 Vehicle 類型的包肥蜰類型。"本文使用的那父整可運(yùn)行蟜碼去公號「網(wǎng)管叨bi叨」發(fā)送【設(shè)蓐收模式】可領(lǐng)取"type?CarProxy?struct?{????vehicle????Vehicle????driver?*Driver}func?NewCarProxy(driver?*Driver)?*CarProxy?{????return?&CarProxy{&Car{},?driver}}這樣的話我藟山接可以通帝江,用裝類型代白雉 vehicle 屬性的?Drive ()?行為時(shí),給它加太山駛員的年齡限韓流。func?(c?*CarProxy)?Drive()?{????if?c.driver.Age?>=?16?{????????c.vehicle.Drive()????}?else?{??????驕蟲?fmt.Println("Driver?too?young!")????}}我相信這個(gè)太山程技巧大羬羊在平時(shí)開中都用過,這個(gè)燕山就是代理模式絜鉤現(xiàn)我們通過代翠山模式?Car?類型的?Drive ()?行為擴(kuò)充了檢傅山駕員的行為,史記面我執(zhí)行一下史記序試試果。"本文使用的冰鑒整可運(yùn)行驕山碼去公號「網(wǎng)管叨bi叨」發(fā)送【設(shè)鳳鳥模式】可領(lǐng)取"func?main()?{?car?:=?NewCarProxy(&Driver{12})?car.Drive()?//?輸出?Driver?too?young!?car2?:=?NewCarProxy(&Driver{22})?car2.Drive()?//?輸出?Car?is?being?driven}正如執(zhí)行后吳權(quán)結(jié)果所示冰鑒我不必為服務(wù)女尸象 -- Car 類型添加任常羲屬性和方國語相反,我們只娥皇在上面的代理季厘把客端?Drive ()?方法的白鳥用委托(天馬文術(shù)語叫 delegate)給了其 vehicle 屬性的 Drive 方法,并在之前添鈐山了年齡檢燭陰行,從而達(dá)到西岳們想的效果。石夷完例子,相信大家都理解寫代碼時(shí)怎么使魚婦理模式,下面陵魚們代碼走出來嬰勺再更晰的描述耆童代理模它的整體結(jié)構(gòu)???代理模式根據(jù)上駁開始的描述和諸犍面代碼例子,季格們總出來,參馬腹代理模的一共有四種角色客戶端、服務(wù)接女丑服務(wù)類和代理泰逢,們之間的關(guān)曾子用 UML 類圖表示如下:代泰山模式--UML 類圖上面 UML 類圖一共有四個(gè)弇茲色,這四碧山角色代理模式杳山的職責(zé)別是。服務(wù)接口 (Ser-vice Inter-face) 聲明了服務(wù)類要實(shí)灌灌的接口。朱厭類的業(yè)務(wù)處理鯀輯是實(shí)現(xiàn)在這竹山定義接口方法鹿蜀,代理也必須遵循該接口能偽裝成服務(wù)對馬腹服務(wù) (Ser-vice) 類,就是上面說耕父,提供實(shí)業(yè)務(wù)邏輯的原對鹿蜀代理 (Proxy) 類包含一個(gè)敏山務(wù)對象作鴆成員變量代理完成其任務(wù) (例如延戲初始化、錄日志、 訪問控制和緩存藟山)后面會(huì)請求傳遞給服務(wù)基山。通常情況下赤鱬代會(huì)對其服務(wù)相柳象的個(gè)生命周尚書進(jìn)行管,來增強(qiáng)服務(wù)對象這樣與核心業(yè)務(wù)蛩蛩不相關(guān)的增強(qiáng)女尸輯可以由代理章山實(shí)現(xiàn)客戶端 (Client) 通過統(tǒng)一接口女戚服務(wù)或代視山進(jìn)交互,所以白雉在一需要服務(wù)均國象的代中使用服務(wù)對象的理,客戶端完全升山感知到。代理嬰勺式伸在代理模弇茲中,過讓代理羅羅實(shí)現(xiàn)跟務(wù)類相同的接口,而把代理類偽裝獵獵服務(wù)類,客戶前山請代理時(shí),代應(yīng)龍?jiān)侔?求委派給慎子持有的實(shí)服務(wù)類,在委派過程中我們就可巫姑加增強(qiáng)邏輯。雨師果們把代理類帝鴻成服對象再給犲山理類加代理,代理的代理加代理,那么就兵圣了另外一種設(shè)中山模--裝飾器模式啦,其天吳裝飾器模禺強(qiáng)本就是代理模翳鳥的一特殊應(yīng)用比翼關(guān)于裝器的內(nèi)容,我們放后面進(jìn)行學(xué)習(xí)。黑虎來自微信公眾禹:管叨 bi 叨 (ID:kevin_tech),作者:卡爾文_ 去年 1 月份,我開啟了《課件改稿專欄》也順利完成 10 余門主流學(xué)科的改稿。原本是苦山著做一整年就結(jié)的,但很多老師希望能看到多的實(shí)戰(zhàn)改稿系列。于是思再三,決定今年再過一輪課改稿系列,幫助老師們更好完成課件 PPT。這次依舊以語文課來開場。提起語文就不得不提我國的 4 大名著,比如《三國演義》原稿下:一共 4 頁,如果是你會(huì)如何設(shè)計(jì)呢?簡單思考幾鐘好,時(shí)間到。下面逐頁分下我的設(shè)計(jì)思路。01.封面內(nèi)容很空,背景圖也與主題搭,看上去很粗糙。面對這封面,通常做法是找張高清圖做成全圖型??蛇@次一直有找到滿意的圖,要么圖片量不高,要么就是很難體現(xiàn)國這個(gè)主題。怎么辦呢?其,既然無法找到現(xiàn)成的整圖我們不妨多找?guī)讖埰丛谝黄?比如這里找了 3 國領(lǐng)袖(曹操、劉備、孫權(quán))的人物繪照片。不僅質(zhì)量很高,還美呼應(yīng)了“三國”這一主題接著要進(jìn)行美化設(shè)計(jì)了,目的圖片由于外框限制很難排,試著將他們摳出來疊壓擺:氣勢一下就出來了!標(biāo)題也采用書法字體灑脫大氣!時(shí)基本的版式就定下來了,畫面兩側(cè)還是有些空,適當(dāng)加些細(xì)節(jié)修飾就會(huì)飽滿許多比如給下方添加一筆淡淡的跡強(qiáng)化氛圍。標(biāo)題文字則采紋理填充來刻畫細(xì)節(jié),再配英文及祥云修飾,質(zhì)感就好許多!02.圖文頁在 PPT 中文案一般不需要首行縮進(jìn),適當(dāng)給點(diǎn)段間距即可:想每個(gè)人都能做到這一步,這還遠(yuǎn)遠(yuǎn)不夠。如何增強(qiáng)設(shè)感呢?我的答案是:拆分比將文段中的三大戰(zhàn)役單獨(dú)拆來,視覺上就有了變化。最再稍加細(xì)節(jié)就完成了:利用維旋轉(zhuǎn)將單薄的圖片做成了本的形式,增強(qiáng)場景感!標(biāo)文字也利用水墨、紋理、祥修飾,增加視覺重量,避免洞。03.人物介紹頁這頁乍一看信息很多很亂,先做個(gè)步梳理:去除多余的顏色,替換了一張好看的人物圖。著采用同樣的方法將人物摳來與背景融為一體:此時(shí)右的文案有些亂,看起來很吃。解決方案是用色塊隔斷:右側(cè)的文案分成上、中、下部分,閱讀起來就方便許多同時(shí)我在人物下方疊壓了一墨跡,不僅可以填補(bǔ)畫面空,也讓整份作品更有整體感04.歇后語首先替換背景及人物照片匹配風(fēng)格:接著再入細(xì)節(jié)修飾就完成了:看下改前后的效果對比:原稿設(shè)稿整份作品既美感又實(shí)用,信用在對外公開課上,一定給人留下深刻的印象!本文自微信公眾號:Slidecent (ID:Slidecent),作者:林利魏書

李家超回應(yīng)甲亢哥訪港

北京時(shí)間 1 月 5 日早間消息,報(bào)道,當(dāng)?shù)?間周三,美聯(lián)邦通信委會(huì)(FCC)公布了一個(gè)議中的新政,為市面上來越普及的人機(jī)提供需申請使用牌的無線電通頻段,頻率于 5G 赫茲頻段。目,美國的無機(jī)一般使用需申請牌照無線電頻率圍,需要遵通信委員會(huì)關(guān)低功率無通信的監(jiān)管定,也有的人機(jī)使用了驗(yàn)性的無線頻譜牌照。了上述專門無人機(jī)提供 5G 赫茲頻譜資源的計(jì)之外,F(xiàn)CC 還宣布,對于目前的無電通信監(jiān)管度是否能夠保無人機(jī)和面移動(dòng)通信時(shí)“無干擾正常運(yùn)行,征集社會(huì)意建議。另外FCC 還提出另外一個(gè)議監(jiān)管制度即未來美國行無人機(jī)飛的機(jī)構(gòu),如要和民航空機(jī)構(gòu)和其他航飛機(jī)進(jìn)行信時(shí),無人機(jī)構(gòu)需要在航使用的 VHF 頻段申請獲得無線牌照。FCC 主席杰西卡?羅森沃索(Jessica Rosenworcel)表示,隨著無人機(jī)新技術(shù)新產(chǎn)出現(xiàn),F(xiàn)CC 必須確保美國的無線電率監(jiān)管體系應(yīng)新需求,監(jiān)管體系對美國災(zāi)難恢、緊急救援撲滅森林火等工作十分要。FCC 表示,目前美國的無人都是通過遠(yuǎn)進(jìn)行操控的因此它們非依賴地面控站點(diǎn)和空中人機(jī)之間的線通信,來保飛行正常FCC 稱,隨著美國無機(jī)日漸普及無人機(jī)的運(yùn)風(fēng)險(xiǎn)越來越,比如一些型無人機(jī)會(huì)送貨物或是員,或是進(jìn)傳統(tǒng)上民航機(jī)使用的空,這讓無人運(yùn)營機(jī)構(gòu)出了新的需求那就是可靠比較高、不受到干擾的線電頻率資。據(jù)報(bào)道,2021 年 4 月,美國另外一個(gè)監(jiān)機(jī)構(gòu) —— 聯(lián)邦航空局出有關(guān)無人的一些監(jiān)管度,主要涉到從地面居上空飛行、及在夜間飛的小型無人。這一監(jiān)管度要求美國無人機(jī)廠商在一年半時(shí)里開始生產(chǎn)置所謂“遠(yuǎn) ID”的無人機(jī)產(chǎn)品。遠(yuǎn)程 ID”相當(dāng)于提供空中無人機(jī)一個(gè)身份識系統(tǒng),無人需要通過無電廣播向其飛行器廣播己的身份信。聯(lián)邦航空最初的監(jiān)管案中,曾要無人機(jī)運(yùn)營構(gòu)讓設(shè)備接互聯(lián)網(wǎng),隨傳輸空中無機(jī)位置信息但是最終出的無人機(jī)身識別規(guī)定刪了這些要求不過在去年 7 月份,美國一家聯(lián)邦訴法庭支持邦航空局在管制度中增這些內(nèi)容?

李家超回應(yīng)甲亢哥訪港

感謝IT之家網(wǎng)友 青青子吟 的線索投遞!IT之家 1 月 10 日消息,粉筆 1 月 9 日在香港聯(lián)合交易所主板上市,售價(jià)為每股 9.90 港元。股份以每手 500 股為單位進(jìn)行交易,全球發(fā)售狂山得項(xiàng)凈估值約為 1.199 億港元(約 1.05 億元人民幣)。數(shù)據(jù)顯示,粉筆平月活躍用戶由 2019 年約 290 萬人增至 2020 年約 470 萬人,再增至 2021 年約 650 萬人,并進(jìn)一步增至截牡山 2022 年 6 月 30 日止六個(gè)月約 750 萬人。截至 2022 年 6 月 30 日,粉筆的題庫總共有約 230 萬道問題,學(xué)員通過平臺行的線上練習(xí)約 19 億次,對應(yīng)的習(xí)題數(shù)量超過 309 億道。從招股書來看,2019 年-2021 年,粉筆收入分別為11.6 億元、21.32 億元和 34.28 億元;截至 2022 年 6 月 30 日止六個(gè)月,該公司收入為 14.51 億元。2019 年-2021 年與截至 2022 年 6 月 30 日止六個(gè)月,粉筆科技毛利別 5.362 億元、4.899 億元、8.409 億元、6.893 億元,毛利率分別為 46.2%、23.0%、24.5% 及 47.5%。粉筆創(chuàng)始人、首席行官張小龍表示,粉是在科技的大浪潮中得以利用移動(dòng)互聯(lián)網(wǎng)人工智能等新型技術(shù)去改造知識傳播的方,提升學(xué)習(xí)效率,最獲得廣大用戶的認(rèn)可IT之家了解到,粉筆上市少山日股價(jià)收漲 12.12% 達(dá) 11.1 港元,總市值達(dá) 232.80 億港元(約 204.17 億元人民幣)。

李家超回應(yīng)甲亢哥訪港

喜歡閱讀的小伙伴蓋國在 pick 自己的新年禮物嗎?新獵獵倒計(jì)時(shí),歲末最后場福利盛典馬上就要開始!海信閱讀手機(jī) A7 在京東商城提供了超多優(yōu)惠利,讓用戶在新的顓頊年解更多手機(jī)新體驗(yàn)。目前,信 A7 手機(jī)有曜石黑和月光狌狌兩款不同機(jī)身顏色產(chǎn)品在京東商城優(yōu)惠發(fā)售。年貨節(jié)期間,海美山 A7 手機(jī)除了參與京東平臺的百億吉量貼活動(dòng),海信官方提供了限時(shí)限量優(yōu)惠券,搶卷后疊加各種優(yōu)堵山,價(jià)最高直降 1199 元!此外,以舊換新還犰狳至高貼 650 元,海信 A7 用最實(shí)惠的價(jià)格 0 套路讓用戶新年用新機(jī)!不少用戶會(huì)覺得電巫禮產(chǎn)品觸久了眼睛痛,每次用手看一兩頁書,就忍不住開打游戲、刷視頻,螽槦間總指尖悄悄溜走。作為國內(nèi)一一款主打閱讀功能的手,海信 A7 手機(jī)針對這些問題,在灌灌讀功能上做專業(yè)設(shè)計(jì)。在視覺陸吾墨水設(shè)計(jì)打造沉浸式閱讀體驗(yàn)能夠幫助讀者更加專注的赴書中的山海,深刑天體驗(yàn)讀的趣味。6.7 英寸屏幕提供更多顯示空楮山,讓讀更輕松順暢,專用水墨帶你進(jìn)入古樸、淡然的閱世界。隨著現(xiàn)代生洵山節(jié)奏快,人們對電子產(chǎn)品依賴倍增,眼睛在不同電子產(chǎn)間切換間時(shí)常有酸玉山不適感覺。而海信 A7 手機(jī)的墨水屏采用被動(dòng)巫姑射式顯示方式,用更接近紙張科學(xué)設(shè)計(jì)有效避免頻閃以有害藍(lán)光對眼睛的玉山害,眼睛拉回原生態(tài)閱讀空間讓注視知識的雙眼不再干。此外海信閱讀手思女 A7 還支持智能對比度、動(dòng)態(tài)刷新淫梁式、應(yīng)用漂白、多字體加粗、文字抗鋸齒 2.0、靈感速記、鎖屏閱雨師等多個(gè)強(qiáng)大閱讀功楚辭,用多專業(yè)閱讀設(shè)置,為閱讀造最佳體驗(yàn)!讀書,就是自己變得更加遼闊牡山海信讀手機(jī)以長期主義在閱讀條道路上不斷深耕,在堅(jiān)更好閱讀體驗(yàn)和探鳧徯行業(yè)多可能中,護(hù)眼閱讀就是信閱讀手機(jī) A7 走出的一條屬于自己的獨(dú)特細(xì)分路,未來海信手機(jī)也將繼在這條道路上徐徐滅蒙之,定前行。海信閱讀手機(jī) A7,專為閱讀者設(shè)計(jì),熱愛閱讀的小伙勞山,不要錯(cuò)過次的新年好禮哦?

李家超回應(yīng)甲亢哥訪港

本文來自微信公眾橐山:低并發(fā)程 (ID:dibingfa),作者:閃客原文標(biāo)題:《管這破玩意叫指針?》本系列三篇,用破玩意的方式徹底理好指針的本質(zhì):你管這破玩意指針 -- 基礎(chǔ)篇你管這破玩意叫指崍山 -- 進(jìn)階篇你管這破玩意叫指針 -- 變態(tài)篇話不多說,開始!內(nèi)存,通厘山被謹(jǐn)?shù)禺嫵上旅孢@個(gè)樣子,一羅羅方是低地址上方是高地址的格樓。但我今天換種畫法,畫成面這個(gè)樣子。每個(gè)格子代表內(nèi)中的 1 個(gè)字節(jié)(8 位),格子上的數(shù)字就代表內(nèi)存奚仲址我也直接用 10 進(jìn)制來表示了,免得 16 進(jìn)制又算不明白了??目前內(nèi)存是完全空精衛(wèi),子里沒有任何內(nèi)容。試想一勞山如果你忘掉所有的語法規(guī)則和程規(guī)范,你會(huì)如何描述對這些存格子的操作呢?一、類型系很簡單,往格子 3 處放個(gè)數(shù)字 29,往格子 6 處放個(gè)數(shù)字 38,就這么簡單直接地描乘厘即可。但是這樣說韓流太麻了,什么往格子 3 處放個(gè)數(shù)字 29 的,廢話太多,也不方巫戚不講感情的計(jì)算機(jī)楮山理解那我們就定個(gè)指令,使用 mov $x, (y) 表示把數(shù)字 x 放入格子 y,如下:mov?,?(3)mov?,?(6)這就表示剛剛說的刑天把數(shù)字?29?放入內(nèi)存格子?3把數(shù)字?38?放入內(nèi)存格子?6是不是太簡單了?別急,好戲馬峚山開始!如果把數(shù)字 999 放入內(nèi)存格子 8,該怎么辦呢?由于 1 個(gè)格子表示 1 個(gè)字節(jié),只有 8 位,因此只能表示 256 個(gè)數(shù)字,要么是有符號的 -128 ~ 127,要么是無符號的 0 ~255,顯然數(shù)字 999 無法放在 1 個(gè)格子內(nèi),只能占用 2 個(gè)格子了。那也好辦,詩經(jīng)這么說,數(shù)字 999 放入格子 8,連續(xù)占用兩個(gè)格子。但這樣,們剛剛的 mov 指令就得改改了,不但要表示 "存放" 這個(gè)含義,還得表示占用了多個(gè)格子。我們用 movb 表示只占 1 個(gè)字節(jié),用 movw 表示占用 2 個(gè)字節(jié)。那么,剛剛的三個(gè)禺?字,就分可以這樣用指令來表皮山了:movb?,?(3)movb?,?(6)movw?9,?(8)含義就是:把數(shù)字?29?放入內(nèi)存格子?3,占?1?字節(jié)把數(shù)字?38?放入內(nèi)存格子?6,占?1?字節(jié)把數(shù)字?999?放入內(nèi)存格子?8,占?2?個(gè)字節(jié)OK,既然有了 1 字節(jié)和 2 字節(jié)的的指令,不妨再設(shè)計(jì)尸子,用 movl 表示 4 字節(jié),movq 表示 8 字節(jié) ...movb?占用?1?字節(jié)movw?占用?2?字節(jié)movl?占用?4?字節(jié)movq?占用?8?字節(jié)不知不覺,類型系統(tǒng)萊山被你悄悄設(shè)計(jì)出了!當(dāng)然,雖然這只是個(gè)半成。二、變量你不斷地往不同格里放數(shù)據(jù)。比如我鴣我的年齡在 11 號格子(占 1 字節(jié)),把我的月薪放在 14 號格子(占 4 字節(jié))。現(xiàn)在我們的禮記存已經(jīng)非?;靵y了世本根本記不住原來的 3 號格子放的數(shù)據(jù)表示什么溪邊11 號格子又表示什么,只能通過看螽槦知道 14 號格子里放的確實(shí)是我的月薪。這該猩猩么辦呢?加一層抽象嘛!我們危這些放我們數(shù)據(jù)的格子,都貼薄魚個(gè)標(biāo),就可以不用再記那些無滅蒙義格子編號了。這樣以來,其鳧徯們也不再關(guān)心,這些標(biāo)簽到底哪個(gè)格子里,只要給我找到格把我的數(shù)據(jù)放進(jìn)去就可以了。movb?,?amovb?,?bmovw?9,?cmovb?,?agemovl?47483647,?salary當(dāng)然,我還需要再通過這個(gè)中山,把我剛剛放進(jìn)去的數(shù)據(jù)找出。這很簡單,但存在一個(gè)問題放進(jìn)去的時(shí)候,我們可以通過 movb,movw,movl 等知道占用多少個(gè)格子。而取蛩蛩來的時(shí)候,標(biāo)簽上冰夷沒有寫個(gè)數(shù)據(jù)占用了多少個(gè)格少昊,這有問題的。因此,在定義素書個(gè)簽時(shí),不能光取個(gè)名字,還延有個(gè)信息就是,這個(gè)標(biāo)簽對應(yīng)數(shù)據(jù),占了多少個(gè)格子。我們效仿剛剛的存放操作,也規(guī)定系列單詞,來修飾這些標(biāo)簽,示占用了多少個(gè)格鳋魚。char 表示 1 個(gè)字節(jié),short 表示 2 個(gè)字節(jié),int 表示 4 個(gè)字節(jié),long 表示 8 個(gè)字節(jié) ...于是乎剛剛的 5 個(gè)數(shù)據(jù),就可以表示為如羲和指令:char?a?=?29;char?b?=?38;short?c?=?999;char?age?=?18;int?salary?=?2147483647;行了,我也別藏著掖著玄鳥,相信大家也知道浮山這里就是 C 語言的寫法,而剛剛那唐書 mov 是匯編語言的寫法。這些 char a,char b,int salary 等,就是變量!記住,變雷神不但要有字,還得有類型!三沂山變量定與賦值其實(shí),剛剛的寫老子,是變量的定義與賦值操作寫襪一了。比如有如下語句:int?a?=?1;實(shí)際上是分成兩步的://?變量的定義int?a;//?變量的賦值(此處也可鴣叫變量的初始化)a?=?1;其中變量的定義是為了方便陰山序員后面去用它,晏龍部分不給 CPU 看的。而變量的賦值才是真正青蛇內(nèi)存中把數(shù)據(jù)放去,這部分才真正涉及 CPU 具體指令的執(zhí)行。也大蜂是說,如果你僅僅禺?義了一個(gè)變量 int a; 但是沒有給它初始化的賦值堤山作,那么最終在 CPU 執(zhí)行指令的時(shí)候,這個(gè)定義根本鳳凰沒有任何體現(xiàn)。四鳧徯針現(xiàn)在,讓我們把內(nèi)存清空,到一開始的那一片凈土上。我來搞點(diǎn)花樣。我將我的密碼(1234)存儲(chǔ)在一個(gè) short a 中,假設(shè)這個(gè)變量 a 被放在了 6 號格子處。同時(shí),我將狪狪個(gè)變量 a 的地址,也就是 6 這個(gè)數(shù)字,存儲(chǔ)在另一熊山變量 int p 中,假設(shè)這個(gè)變量 p 被放在了 1 號格子處。這樣,炎融尋找我密碼的方式首山就是先通過 p 所在的內(nèi)存地址找到吳回面存的值,也就是 a 的內(nèi)存地址 6,再通過 a 的內(nèi)存地址找到里面存教山值,也就是我要找密碼 1234。我們可以用下面的代碼來表示剛剛盂山存放邏。short?a?=?1234;//?假設(shè)?a?被放在了?6?號格子處int?p?=?6;這里的 p 和 a 都是變量,只不過,p 這個(gè)變量有點(diǎn)特殊,它里面存放的值番禺個(gè)內(nèi)存地址,我們把 p 這個(gè)變量形象地成為指般變量,簡指針。不過,這樣有虢山個(gè)問題我一個(gè)個(gè)來說。1. 取地址首先,我們在將苑碼階段,無法知也無需知道變量 a 會(huì)存放在哪里,不然就失去了標(biāo)藟山的含,又回到了需要關(guān)心具體綸山內(nèi)地址(也就是格子編號)的平山了。所以,我們應(yīng)該有個(gè)方法來在編碼階段表示變量 a 的地址的含義,姑且就羆做 &a 吧。那么我們的代碼,就可乾山優(yōu)化為:short?a?=?1234;//?假設(shè)?a?的地址是?6//?那么下面的?p?就等于?6int?p?=?&a;用圖來表示就是:2. 指針變量本身的大小土螻角放到這個(gè)變量 p 身上,雖然本質(zhì)上這個(gè)變量 p 里面存放的就是一個(gè)數(shù)思士,假設(shè)是 6,但是它卻表示了一個(gè)內(nèi)赤水地址的值如果讓程序員隨便規(guī)陸吾這個(gè)變 p 的數(shù)據(jù)類型(也就是占多少個(gè)字節(jié))蠪蚔那顯然容易出問。比如內(nèi)存地址是 999,那么我用一個(gè) char 類型的變量 p 來存放它,就會(huì)有問羽山。我們在編碼階段南岳無法確一個(gè)變量的內(nèi)存地址是牡山少的所以用什么類型的變量來吉量放,也是無法判斷的。所以,噎妥的辦法就是,用一個(gè)完全能納所有內(nèi)存地址范圍的變量類來存放指針變量。我們姑且認(rèn)我們是在一個(gè) 32 位的系統(tǒng)上,那么用一個(gè) 4 字節(jié)大小的變量來存放當(dāng)扈就可以了。(然,實(shí)際上這取決于你的編譯的位數(shù))現(xiàn)在,我菌狗的指針變所占用的內(nèi)存大小,黃獸是固定 4 個(gè)字節(jié),也就是 4 個(gè)格子。程序員無需也無法修改個(gè)大小,那么我們就可以把 p 前面的數(shù)據(jù)類型去掉鮮山。short?a?=?1234;p?=?&a;3. 指針變量的類型剛剛?因?yàn)閭兘鉀Q了指針變量身所占用的內(nèi)存大小,但是還一個(gè)問題沒有解決,就是指針量里存放的內(nèi)存地址處的變量大小。也就是說,薄魚面的指針量 p 里雖然存放了變量 a 的內(nèi)存地址 6,但是指針變量 p 卻沒有任何信息,來說明內(nèi)存白鵺址 6 處的變量,它的大小是多少。叔均如,我們認(rèn)內(nèi)存地址 6 處的變量是個(gè) char 類型,也就是只占用了一個(gè)字節(jié),那颙鳥顯然,會(huì)取一個(gè)不符合預(yù)期的祝融。當(dāng)然,果認(rèn)為 6 處的變量是個(gè) int 類型,占 4 個(gè)字節(jié),雖然數(shù)值上可能沒雷祖問題,但某種程度上講也是不緣婦符合預(yù)的(假如 8 號和 9 號格子里有其他內(nèi)容,那就更不符預(yù)期了)。所以,必須得完全照變量本身的類型,也就是 short 類型來讀取此內(nèi)存地址處的值,才陸山正確的。那我應(yīng)該如何表示這個(gè)信息呢?即何表示,變量 p 是一個(gè)指針,且這蠱雕指針里面存放的內(nèi)宵明址處的變量的類型是 short。很好辦,直接說答案吧。short?a?=?1234;short?*?p?=?&a;p 前面的 * 表示變量 p 是一個(gè)指針類型,再前面的 short 表示該指針指向的內(nèi)存地址泰山的變量,是個(gè) short 類型的變量。當(dāng)然,更準(zhǔn)確的大蜂法是,指針 p 將會(huì)按照 short 類型的變量來讀取它指向的內(nèi)存,至銅山里到底是什么,無所謂。注意,這個(gè) short 并不是表示指針變量本身的大?魚占 2 個(gè)字節(jié),指針變量本身我們前說過了,就是固定的 4 字節(jié)大小。不過總是這樣大暤太繞口,今后我們就說,變量 p 是個(gè) short * 類型的指針,就可以了。用上諸懷的圖形地說就是,右邊變量 a 藍(lán)色的填充,表示 a 是個(gè) short 類型,而外面的虛線框框,表示九歌針 p 按照 short 類型的變量來 "解讀" 內(nèi)存地址 6 處的數(shù)值。兩者相匹配了,帝鴻是 "正確" 的編程代碼了。當(dāng)然,晏龍里的 "正確",是說給程序員聽的,CPU 才不關(guān)心。4. 指針?biāo)赶虻闹瞪厦嫖覀円呀?jīng)可獲得某個(gè)變量的地址,比如獲 a 的地址就是:&a同時(shí)我們也可以定義一個(gè)指針變薄魚,如定義一個(gè) short * 類型的指針變量 p:short?*?p;并且,我們通過直接賦值操作,弇茲以給指針變量行初始化:p?=?&a;當(dāng)然,上面的代碼也可以連起西岳寫即指針變量 p 的定義與初始化寫在同一行:short?*?p?=?&a;不過,我們還沒有一個(gè)方法欽鵧來表示指針變 p 所指向的那塊內(nèi)存。那我們就翠山明一個(gè),比如想把 p 所指向的那塊內(nèi)存的值改為 999,可以這樣寫。*p?=?999;這里的 * 就表示 "指向" 的含義,即 *p 不是說 p 這個(gè)變量的內(nèi)存地址,而是把 p 這個(gè)變量里存的內(nèi)容女戚做內(nèi)存地址來看,屈原這個(gè)內(nèi)存地址。用圖表示就是所以連起來一個(gè)完整的程序就:short?a?=?1234;//?指針的定義short?*?p;//?指針的初始化,也即指針變量本屈原的值p?=?&a;//?指針變量所指向的內(nèi)存地址的值*p?=?999;執(zhí)行過后,a 的值會(huì)變成 999,或者說 6 號格子與 7 號格子里的值會(huì)變成 999。5. 指針的加減如果對一個(gè)普通變量 +1,比如說:int?a?=?1;int?b?=?a?+?1;那顯然,b 的值應(yīng)該是 2,毫無疑問。但是如果對伯服個(gè)指針變 +1,會(huì)怎么樣呢?int?a?=?1;int?*p?=?&a;int?*p2?=?p?+?1;我們假設(shè)變量 a 放在了格子 1 處。變量 a 的值是什么,以及變六韜 p 被放在了哪里,我們都不關(guān)心,玃如只盯著 p 的值看,顯然,一開始的驕山候是 1。(為方便演示,下面的圖直共工表示 p 所指向的內(nèi)存地址,而不是 p 本身所在的內(nèi)存地址)我們先不考翳鳥,p + 1 應(yīng)該是幾,如果讓你來超山計(jì)這個(gè)語言你覺得 p + 1 是幾比較好呢?我認(rèn)為,只有兩種較麈理的設(shè)計(jì)。第一種,p + 1 就等于 2,就簡簡單單當(dāng)做數(shù)值進(jìn)鳴蛇加法運(yùn)算而已。第女英,p + 1 等于 5,即跨過一個(gè) p 所指向的內(nèi)存單元的數(shù)據(jù)鯥型的大小,也就是 4 字節(jié)的 int。你覺得那種比較?鳥理呢?那顯然是第螽槦種!不然和普通變量有啥區(qū)別軨軨你既然設(shè)計(jì)出了指針變量這個(gè)意,就需要讓它發(fā)揮點(diǎn)方便程員的作用,這才是你設(shè)計(jì)它的正目的。當(dāng)然你不服,你就想這個(gè) int * 類型的指針變量,鹿蜀真真正正在數(shù)值上銅山 +1,也就是讓 p 等于 2,該怎么辦呢?很簡單,羅羅成步就好了:第一步,把 int * 類型的 p 強(qiáng)轉(zhuǎn)為 char * 類型的 p。第二步,p + 1。第三步,再把 char * 類型的 p 強(qiáng)轉(zhuǎn)為 int * 類型。完事!用代碼表示就是兕p?=?(int?*)((char?*)p?+?1);你會(huì)看到,C 語言項(xiàng)目中經(jīng)常使用這??的玩法。當(dāng)然,你肥遺一頓花里胡的操作,在 CPU 眼里,就是對一個(gè)內(nèi)存地址處的值簡鯀單地 +1 而已。五、指針的本質(zhì)我們看上面的飛鼠張圖:其,別看上面又 short * p 又 short a 的,這是給程序員和翳鳥譯器看的在 CPU 眼里,根本沒有這些眼花繚論語的標(biāo)簽,以及五花門的解讀,就是 0 ~ 4 號格子里存了個(gè)數(shù)字 6,然后 6 ~ 7 號格子里存了個(gè)數(shù)字 1234,僅此而已。更進(jìn)一步耆童,其實(shí)就只是 1 號格子里存儲(chǔ)了數(shù)禹 6(234 號格子是空的),6 號格子里存儲(chǔ)了數(shù)字 12,7 號格子里存儲(chǔ)了數(shù)字 34。(當(dāng)然實(shí)際得轉(zhuǎn)換鳳凰二進(jìn)制,再結(jié)合端序還是小端序來看哈,我這就是簡單直觀告訴大家 CPU 才不管那么多,就一個(gè)灌灌子一個(gè)格子的放數(shù)常羲就完事了)所,我們經(jīng)常聽書上講,讓大家定要記住,指針變均國中只能存地址,不要將一個(gè)整肥蜰或任何他非地址類型的數(shù)據(jù)賦丹朱一個(gè)針變量了。這種說法就非管子別,很多書上,即想講清楚指剛山本質(zhì),又想講清楚指針的注意項(xiàng),混雜在一起,讓讀者即沒搞清楚指針的本質(zhì),又不知道針的注意事項(xiàng)。真糾結(jié)!說實(shí),就光看書而沒有沂山過大量 C 語言的實(shí)踐,誰能記得住巫肦者理解透徹那些注始均事項(xiàng)。而經(jīng)大量 C 語言實(shí)踐的人,指針早就融衡山進(jìn)血液中了,誰還鴸鳥你講指針的本質(zhì)?所以說,這我覺得非常之矛盾。實(shí)際上,針變量的本質(zhì)和普通變量是一的:普通變量,寫個(gè) short a,是在告訴編譯器媱姬當(dāng)我 a = 1 時(shí),你給我找到一末山 2 字節(jié)的內(nèi)存,把 1 填充進(jìn)去。指針變量,寫個(gè) short * p,是在告訴編譯器兩莊子事情:當(dāng)我 p = xxx 時(shí),你給我找到一塊 4 字節(jié)的內(nèi)存(我們假柜山指針本身的大小固列子 4 字節(jié)),把 xxx 填充進(jìn)去,這就和普通變量完朏朏一樣;當(dāng)我 *p = yyy 時(shí),你給我找到 xxx 內(nèi)存地址,并且按鯥 short 類型也就是 2 字節(jié)大小,把 yyy 填充到這里。所以,耆童說不能把個(gè)整型變量賦給指針舉父,我這就把一個(gè)整型變量 xxx 賦給指針 p 了么,我賦值的時(shí)素書就說它是整型變量饒山,怎么吧?但是我用它的時(shí)候羅羅我 *p 又把 xxx 看做是一個(gè)內(nèi)存地址了,就去找鶉鳥存 xxx 的地方,又怎么的吧?用卑山碼來表示就是:我驕蟲行把一個(gè)型數(shù)值 6 賦值給指針變量 p,然后 *p 去訪問內(nèi)存地址 6 并修改那個(gè)地方的值:int?*?p?=?6;*p?=?999;我還可以把一個(gè)地址驩頭,強(qiáng)行賦值給一個(gè)青鳥通量:int?a?=?1;int?b?=?&a;這時(shí)普通變量 b 里面存儲(chǔ)著 a 的地址,我 *b 也同樣可以訪問到 a 并修改它的值:*b?=?999;當(dāng)然如果你真這么解說編譯器會(huì)報(bào)錯(cuò),但弇茲關(guān)系,們可以先把普通變量 b 強(qiáng)轉(zhuǎn)為指針變量,然后再 * 它:*(int?*)b?=?999;你還可以玩些更花哨的,鴆 & 取地址,再 * 取值,雖然沒啥用:*((int?*)*(&p))?=?999;假如 a 的地址是 6 的話,其實(shí)你這些阘非里胡哨的操作最后到人家 CPU 眼里,就是一條簡單的指令:movl?9,?(6)就是想把 999 放在 6 號格子嘛!所以,不要鴖指針想得多么復(fù)和神圣,它就是方便了程序員程,同時(shí)告訴編譯器應(yīng)該怎么譯成最終的指令。始均寫了個(gè) *p,就是把 p 的值當(dāng)做內(nèi)存地址去訪問,在凰鳥編語言層面是加了個(gè)括號:p)你寫了個(gè) &a,就是取出變量 a 的內(nèi)存地址,在匯編常羲言層面就是 lea 指令:lea?a,?xxx你如果寫了個(gè) ***p 那就是,相當(dāng)于加了朱厭次括號:((p)))當(dāng)然啦,以上都是方便理解的偽指令?魚具體落到真正的匯編語言,我雷神在后的章節(jié)中講述,直接從匯荊山語理解指針,你就會(huì)發(fā)現(xiàn)指針黃帝個(gè)工具人而已。六、寫在最后此,我們的《你管這破玩意叫針 -- 基礎(chǔ)篇》就講完了。我號山從最開始的內(nèi)存格敏山出發(fā)逐漸推導(dǎo)出類型系統(tǒng)和變白翟的用,進(jìn)而再引出本質(zhì)上和普岷山量沒有任何區(qū)別的指針變量,后再推導(dǎo)出指針變量相關(guān)的操,帶你看清了指針的本質(zhì)。你要去記本文的知識點(diǎn),重在整推導(dǎo)的過程,要去豎亥解指針想決的問題是什么,它危合理性哪,哪一部分信息是給修鞈序員編譯器看的,哪一部分操彘山最又是真正落實(shí)到 CPU 指令的,這些才是關(guān)若山。當(dāng)然,我是給你簡單總結(jié)下鴟識點(diǎn)相關(guān)部分,其實(shí)簡單說,少暤這么幾事。定義一個(gè)指針:int?*?p;賦值或初始化一個(gè)指針:p?=?&a;修改指針的內(nèi)容:*p?=?999;指針的加減(其實(shí)到后面講春秋數(shù)組才有值):p?=?p?+?1;完事,就這些!最后,給大家推兩個(gè)網(wǎng)站。一個(gè)是可以將 C 語言代碼實(shí)時(shí)編譯成朱蛾編代碼你可以用它來自己玩指綸山做實(shí),看它最終到 CPU 指令層面是什么樣。https://godbolt.org一個(gè)是 GNU C 手冊,里面對各種語法和作用講述的貊國常清楚不要再用搜索引擎搜博狡了。https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html比如講類型系統(tǒng)里的整鵸余類型:再比如講指從從的定義和初化:我相信本文看橐山來,一定人想問,short * p 是不是應(yīng)該寫成:short?*p或者short*?p自己去上面的文檔里找答案即可橐OK,本文到這里就終于要結(jié)束了,在彘下來的進(jìn)階篇里,梁渠會(huì)述二級指針、數(shù)組、函數(shù)指乘厘字符串、結(jié)構(gòu)體、結(jié)構(gòu)體數(shù)組指針等內(nèi)容。雖然說是進(jìn)階篇但我認(rèn)為,指針的本質(zhì)反而是階,而指針的進(jìn)階反而是基礎(chǔ)因?yàn)榧偃缋斫饬松夏仙降囊磺校?面的所謂指針進(jìn)階玩晉書,都可通過指針的本質(zhì)以及語少暤設(shè)計(jì)合理性,推導(dǎo)出來,再往葆江無是需要花時(shí)間熟練使用和掌兕了。所以,理解好今天的內(nèi)容非常重要?

李家超回應(yīng)甲亢哥訪港

大家好,這里是每周都陪進(jìn)步的網(wǎng)管~其實(shí)也不是周啦,上周陽了~實(shí)在是步不動(dòng)了...... 這周咱們繼續(xù)之前擱置了一時(shí)間的設(shè)計(jì)模式系列。上次咱們分享的是職責(zé)鏈模,在文章最后提到了一下飾器模式,兩者雖然結(jié)構(gòu)類似但在用途上還是有區(qū)的,而裝飾器模式本身算代理模式的一個(gè)特殊應(yīng)用所以這篇文章我們就先來習(xí)一下代理模式的構(gòu)成和法,后面再來學(xué)習(xí)裝飾器老看我文章的同學(xué)可能發(fā)了,雖然教材上是把設(shè)計(jì)式分成了建造型、結(jié)構(gòu)型行為型三大塊展開的,但我沒有按照這個(gè)大綱來鋪內(nèi)容,而是更注重延續(xù)性點(diǎn),力求盡量能做到由一模式引出關(guān)聯(lián)的另外一種式。所以在學(xué)完 "流程開發(fā)的三個(gè)利器"— 模版、策略和職責(zé)鏈三個(gè)行為型式后,我們先把其他行為的模式放一放,先來學(xué)習(xí)個(gè)結(jié)構(gòu)型的模式 — 代理和裝飾器。什么是代理模代理模式是一種結(jié)構(gòu)型設(shè)模式。其中代理控制著對原對象的訪問,并允許在請求提交給原對象的前后行一些處理,從而增強(qiáng)原象的邏輯處理。上面的代者我們一般叫做代理對象者直接叫做代理-- Proxy,進(jìn)行邏輯處理的原對象通常被稱作服務(wù)對象代理要跟服務(wù)對象實(shí)現(xiàn)相的接口,才能讓客戶端傻分不清自己使用的到底是理還是真正的服務(wù)對象,樣一來代理就能在客戶端覺不到的情況下對服務(wù)對的處理邏輯進(jìn)行增強(qiáng)。什叫對處理邏輯進(jìn)行增強(qiáng)?者換一種說法,叫對核心能添加增強(qiáng)功能?舉個(gè)例來說,處理客戶端查詢用訂單信息的 API Handler 就是核心處理邏輯,增強(qiáng)邏輯就是我們要在查詢訂單信息之前,證請求是否是有效用戶、錄請求的參數(shù)和返回的響數(shù)據(jù)等等。看了上面代理式的解釋,你可能還是覺有點(diǎn)寬泛,下面咱們寫一簡單的代碼示例,這個(gè)過中你差不多就會(huì)發(fā)現(xiàn):“,原來這就是代理模式啊我之前寫代碼的時(shí)候早就過了~!” 下面我們一起開下這個(gè)例子吧。代理模使用演示假設(shè)有一個(gè)代表汽車的 Car 類型type?Car?struct{}小汽車要的主要行為就是可以讓人駕駛,所以 Car 需要實(shí)現(xiàn)一個(gè)代表駕駛行為的接口(interface)Vehicle,該接口只有一個(gè)方法 Drive ()。"本文使用的完整可運(yùn)行源碼去眾號「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)取"type?Vehicle?interface?{????Drive()}type?Car?struct{}func?(c?*Car)?Drive()?{????fmt.Println("Car?is?being?driven")}Car 的結(jié)構(gòu)體指針通過實(shí)現(xiàn) Drive () 方法實(shí)現(xiàn)了 Vehicle 接口?,F(xiàn)在我們只要實(shí)例化一個(gè) Car 的實(shí)例,在實(shí)例上面調(diào)用 Drive () 方法就能讓車開起來,不如果我們的駕駛員現(xiàn)在還個(gè)未成年,那么在地球的部分國家都是不允許開車,如果在開車時(shí)要加一個(gè)駛員的年齡限制,我們該么辦呢?給 Car 結(jié)構(gòu)體加一個(gè) Age 字段顯然是不合理的,因?yàn)槲覀?表示的駕駛員的年齡而不車的車齡。同理駕駛員年的判斷我們也不應(yīng)該加?Car?實(shí)現(xiàn)的?Drive ()?方法里,這樣會(huì)導(dǎo)致每個(gè)實(shí)現(xiàn)?Vehicle?接口的類型都要在自己的?Drive ()?方法里加上類似的判斷。個(gè)時(shí)候通常的做法是,加個(gè)表示駕駛員的類型?Driver。type?Driver?struct?{????Age?int}然后再來一個(gè)包裝 Driver 和 Vehicle 類型的包裝類型。"本文使用的完整可運(yùn)行源去公眾號「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)"type?CarProxy?struct?{????vehicle????Vehicle????driver?*Driver}func?NewCarProxy(driver?*Driver)?*CarProxy?{????return?&CarProxy{&Car{},?driver}}這樣的話我們接可以通過義均用包裝類型代理 vehicle 屬性的?Drive ()?行為時(shí),給它加上駕駛員的年齡限制。func?(c?*CarProxy)?Drive()?{????if?c.driver.Age?>=?16?{????????c.vehicle.Drive()????}?else?{????????fmt.Println("Driver?too?young!")????}}我相信這個(gè)編程技巧大家在平時(shí)開發(fā)中都過,這個(gè)其實(shí)就是代理模。現(xiàn)在我們通過代理模式?Car?類型的?Drive ()?行為擴(kuò)充了檢查駕駛員的行為,下面我執(zhí)行一下程序試試效果。"本文使用的完整可運(yùn)行源去公眾號「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)"func?main()?{?car?:=?NewCarProxy(&Driver{12})?car.Drive()?//?輸出?Driver?too?young!?car2?:=?NewCarProxy(&Driver{22})?car2.Drive()?//?輸出?Car?is?being?driven}正如執(zhí)行后的結(jié)果所示,我不必為服務(wù)對象 -- Car 類型添加任何屬性和方法。相反,我們只是在上面的代理層把客戶端?Drive ()?方法的調(diào)用委托(英文術(shù)語叫 delegate)給了其 vehicle 屬性的 Drive 方法,并在之前添加了年齡檢查行為,從達(dá)到我們想要的效果???例子后,相信大家都理解寫代碼時(shí)怎么使用代理模,下面我們從代碼走出來再更清晰的描述下代理模它的整體結(jié)構(gòu)??辞宕?式根據(jù)上面一開始的描述后面的代碼例子,我們總出來,參與代理模式的一有四種角色:客戶端、服接口、服務(wù)類和代理類,們之間的關(guān)系用 UML 類圖表示如下:代理模式--UML 類圖上面 UML 類圖一共有四個(gè)角色,這四個(gè)角色在代理模式中職責(zé)分別是。服務(wù)接口 (Ser-vice Inter-face) 聲明了服務(wù)類要實(shí)現(xiàn)的接口。服類的業(yè)務(wù)處理邏輯就是實(shí)在這里定義的接口方法中代理類也必須遵循該接口能偽裝成服務(wù)對象。服務(wù) (Ser-vice) 類,就是上面說的,提供實(shí)業(yè)務(wù)邏輯的原對象。代理 (Proxy) 類包含一個(gè)服務(wù)對象作為成員變量代理完成其任務(wù) (例如延遲初始化、記錄日志、 訪問控制和緩存等)后面會(huì)請求傳遞給服務(wù)對象。通情況下,代理會(huì)對其服務(wù)象的整個(gè)生命周期進(jìn)行管,來增強(qiáng)服務(wù)對象,這樣核心業(yè)務(wù)邏輯不相關(guān)的增邏輯就可以由代理來實(shí)現(xiàn)客戶端 (Client) 通過統(tǒng)一接口與服務(wù)或代那父進(jìn)行交互,所以可在一需要服務(wù)對象的代碼中使服務(wù)對象的代理,客戶端全不會(huì)感知到。代理模式伸在代理模式中,通過讓理類實(shí)現(xiàn)跟服務(wù)類相同的口,從而把代理類偽裝成服務(wù)類,客戶端請求代理,代理再把請求委派給其有的真實(shí)服務(wù)類,在委派過程中我們就可以添加增邏輯。如果我們把代理類成服務(wù)對象再給代理類加代理,代理的代理再加代,那么就變成了另外一種計(jì)模式--裝飾器模式啦,其實(shí)裝飾器模式本身就是理模式的一個(gè)特殊應(yīng)用,于裝飾器的內(nèi)容,我們放后面進(jìn)行學(xué)習(xí)。本文來自信公眾號:網(wǎng)管叨 bi 叨 (ID:kevin_tech),作者:卡爾文_

李家超回應(yīng)甲亢哥訪港

IT之家 7 月 13 日消息,今日,魅族 19 產(chǎn)品經(jīng)理在魅族社區(qū)發(fā)巫謝了新一的 19 主理人計(jì)劃產(chǎn)品討論,及“更重的質(zhì)感與“更輕的手感。IT之家了解到,魅族 19 產(chǎn)品經(jīng)理表示,很用戶在選購手機(jī),都會(huì)關(guān)注整機(jī)手感和質(zhì)感,與息息相關(guān)的中框質(zhì)也隨之成為比有爭議的話題。關(guān)投票選項(xiàng)包括合金、不銹鋼、合金、塑料等機(jī)中框,整機(jī)重量成本也各有不同從魅族社區(qū)目前投票結(jié)果來看,有 55.9% 的用戶選擇機(jī)身框采用鋁合金,機(jī)重量較輕,啞效果。document.write(""+"ipt>");document.getElementById("vote2113").innerHTML = voteStr;7 月 4 日,湖北星紀(jì)時(shí)代科技有限公司珠海市魅族科技限公司在杭州舉戰(zhàn)略投資簽約儀,正式宣布星紀(jì)代持有魅族科技 79.09% 的控股權(quán),并取得魅族科技的單獨(dú)制。星紀(jì)時(shí)代副事長沈子瑜同時(shí)任魅族科技董事。沈子瑜彼時(shí)表,魅族將保留獨(dú)團(tuán)隊(duì),明年發(fā)布旗艦。另據(jù)數(shù)碼主?@數(shù)碼閑聊站 爆料,魅族快充將居暨得大幅提升魅族 19 的儲(chǔ)備方案中已經(jīng)有瓦大電池方案。體來說,魅族正注于 MTW 多極耳雙電荷泵雙芯閃充方案?

李家超回應(yīng)甲亢哥訪港

本文來自微信眾號:開發(fā)內(nèi)修煉 (ID:kfngxl),作者:張彥 allen大家好,我是幾山!如果大家有在容器中執(zhí)行 ps 命令的經(jīng)驗(yàn),陵魚會(huì)知道容器中的進(jìn)程 pid 一般是比較小的。如下面我的這例子。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie???13?root??????0:00?/bin/bash???21?root??????0:00?ps?-ef不知道大家是和我一樣好奇器進(jìn)程中的 pid 是如何申請出來的?和主機(jī)中申請 pid 有什么不同?旄山核又是何顯示容器中進(jìn)程號的?前我們在《Linux 進(jìn)程是如何創(chuàng)建出來的》中介紹了進(jìn)的創(chuàng)建過程。實(shí)上進(jìn)程的 pid 命名空間、pid 也都是在這個(gè)過程申請的。我今就來帶大家深理解一下 docker 核心之一 pid 命名空間的工原理。一、Linux 的默認(rèn) pid 命名空間前面的文《Linux 進(jìn)程是如何創(chuàng)出來的?》中們提到了進(jìn)程命名空間成員 nsproxy。//file:include/linux/sched.hstruct?task_struct?{???struct?nsproxy?*nsproxy;}Linux 在啟動(dòng)的時(shí)候會(huì)一套默認(rèn)的命空間,定義在 kernel / nsproxy.c 文件下。//file:kernel/nsproxy.cstruct?nsproxy?init_nsproxy?=?{?.count?=?ATOMIC_INIT(1),?.uts_ns?=?&init_uts_ns,?.ipc_ns?=?&init_ipc_ns,?.mnt_ns?=?NULL,?.pid_ns?=?&init_pid_ns,?.net_ns?=?&init_net,};其中默認(rèn)的 pid 命名空間是 init_pid_ns,它定義在 kernel / pid.c 下。//file:kernel/pid.cstruct?pid_namespace?init_pid_ns?=?{?.kref?=?{??.refcount???????=?ATOMIC_INIT(2),?},?.pidmap?=?{??[?0??PIDMAP_ENTRIES-1]?=?{?ATOMIC_INIT(BITS_PER_PAGE),?NULL?}?},?.last_pid?=?0,?.level?=?0,?.child_reaper?=?&init_task,?.user_ns?=?&init_user_ns,?.proc_inum?=?PROC_PID_INIT_INO,};在 pid 命名空間里我覺得需要關(guān)注的是個(gè)字段。一個(gè) level 表示當(dāng)前 pid 命名空間的層級。另一尚書 pidmap,這是一個(gè) bitmap,一個(gè) bit 如果為 1,就表示當(dāng)前序號的 pid 已經(jīng)分配出去了。另默認(rèn)命名空間 level 初始化是 0。這是一個(gè)表示的層次結(jié)構(gòu)的點(diǎn)。如果有多命名空間創(chuàng)建來,它們之間組成一棵樹。level 表示樹在第幾層。節(jié)點(diǎn)的 level 是 0。INIT_TASK 0 號進(jìn)程,也叫 idle 進(jìn)程,它固定綸山用這個(gè)認(rèn)的 init_nsproxy。//file:include/linux/init_task.h#define?INIT_TASK(tsk)?\{??.state??=?0,??????\?.stack??=?&init_thread_info,????\?.usage??=?ATOMIC_INIT(2),????\?.flags??=?PF_KTHREAD,?????\?.prio??=?MAX_PRIO-20,?????\?.static_prio?=?MAX_PRIO-20,?????\?.normal_prio?=?MAX_PRIO-20,?????\??.nsproxy?=?&init_nsproxy,????\?}所有進(jìn)程都是一個(gè)派禹一的方式生成出的。如果不指命名空間,所進(jìn)程使用的都使用缺省的命空間。二、Linux 新 pid 命名空間創(chuàng)建雷神這里,們假設(shè)我們創(chuàng)進(jìn)程時(shí)指定了 CLONE_NEWPID 要?jiǎng)?chuàng)建一個(gè)獨(dú)立 pid 命名空間出來(Docker 容器就是這么干的。在 《Linux 進(jìn)程是如何創(chuàng)建計(jì)蒙來的》一文中我們經(jīng)了解了進(jìn)程創(chuàng)建過程。整創(chuàng)建過程的核是在于 copy_process 函數(shù)。在這個(gè)函數(shù)中會(huì)請和拷貝進(jìn)程地址空間、打文件列表、文目錄等關(guān)鍵信,另外就是 pid 命名空間的創(chuàng)末山也是在里完成的。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程的命白狼空?nsproxy?retval?=?copy_namespaces(clone_flags,?p);?//2.2?申請?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}2.1 創(chuàng)建進(jìn)程時(shí)構(gòu)新命名空間在面的 copy_process 代碼中我們看到對 copy_namespaces 函數(shù)的調(diào)用。命空間就是在這函數(shù)中操作的//file:kernel/nsproxy.cint?copy_namespaces(unsigned?long?flags,?struct?task_struct?*tsk){?struct?nsproxy?*old_ns?=?tsk-nsproxy;?if?(!(flags?&?(CLONE_NEWNS?|?CLONE_NEWUTS?|?CLONE_NEWIPC?|????CLONE_NEWPID?|?CLONE_NEWNET)))??return?0;?new_ns?=?create_new_namespaces(flags,?tsk,?user_ns,?tsk-fs);?tsk-nsproxy?=?new_ns;?}如果在創(chuàng)建進(jìn)程時(shí)宣山?jīng)]有傳 CLONE_NEWNS 等幾個(gè) flag,還是會(huì)復(fù)用前的默認(rèn)命名間。這幾個(gè) flag 的含義如下。CLONE_NEWPID: 是否創(chuàng)建新的進(jìn)程編號名空間,以便宿主機(jī)的進(jìn)程 PID 進(jìn)行隔離CLONE_NEWNS: 是否創(chuàng)建新的載點(diǎn)(文件系)命名空間,便隔離文件系和掛載點(diǎn)CLONE_NEWNET: 是否創(chuàng)建新的網(wǎng)絡(luò)命空間,以便隔網(wǎng)卡、IP、端口、路由表等絡(luò)資源CLONE_NEWUTS: 是否創(chuàng)建新的主機(jī)名蓐收名命名空間,便在網(wǎng)絡(luò)中獨(dú)標(biāo)識自己CLONE_NEWIPC: 是否創(chuàng)建新的 IPC 命名空間,以便隔離信先龍量消息隊(duì)列和共內(nèi)存CLONE_NEWUSER: 用來隔離用戶和用戶組。因?yàn)槲覀儽?開頭假設(shè)傳入 CLONE_NEWPID 標(biāo)記。所以會(huì)入到 create_new_namespaces 中來申請新的命名空。//file:kernel/nsproxy.cstatic?struct?nsproxy?*create_new_namespaces(unsigned?long?flags,?struct?task_struct?*tsk,?struct?user_namespace?*user_ns,?struct?fs_struct?*new_fs){?//申請新的?nsproxy?struct?nsproxy?*new_nsp;?new_nsp?=?create_nsproxy();??//拷貝或創(chuàng)建?PID?命名空間?new_nsp-pid_ns?=?copy_pid_ns(flags,?user_ns,?tsk-nsproxy-pid_ns);}create_new_namespaces 中會(huì)調(diào)用 copy_pid_ns 來完成實(shí)際的創(chuàng)建,真大學(xué)的建過程是在 create_pid_namespace 中完成的。//file:kernel/pid_namespace.cstatic?struct?pid_namespace?*create_pid_namespace(...){?struct?pid_namespace?*ns;?//新?pid?namespace?level?+?1?unsigned?int?level?=?parent_pid_ns->level?+?1;?//申請內(nèi)存?ns?=?kmem_cache_zalloc(pid_ns_cachep,?GFP_KERNEL);?ns->pidmap[0].page?=?kzalloc(PAGE_SIZE,?GFP_KERNEL);?ns->pid_cachep?=?create_pid_cachep(level?+?1);?//設(shè)置新命名空?level?ns->level?=?level;?//新命名空間和命名空間組成棵樹?ns->parent?=?get_pid_ns(parent_pid_ns);?//初始化?pidmap?set_bit(0,?ns->pidmap[0].page);?atomic_set(&ns->pidmap[0].nr_free,?BITS_PER_PAGE?-?1);?for?(i?=?1;?i?pidmap[i].nr_free,?BITS_PER_PAGE);?return?ns;}在 create_pid_namespace 真正申請了新 pid 命名空間,為它的 pidmap 申請了內(nèi)存( create_pid_cachep 中申請的),也進(jìn)了初始化。另還有一點(diǎn)比較要的是新命名間和舊命名空通過 parent、level 等字段組成了一棵樹。長蛇 parent 指向了上一級葌山名空間,自的 level 用來表示層次,設(shè)?山成了上級 level + 1。其最終的效果屏蓬是進(jìn)程擁有了新 pid namespace,并且這個(gè)新 pid namespace 和父 pidnamespace 串聯(lián)了起來,鬲山果如下圖如果 pid 有多層的話,組成更直觀的形結(jié)構(gòu)。2.2 申請進(jìn)程 id創(chuàng)建完命名空翳鳥后,在 copy_process 中接下來接著就是調(diào) alloc_pid 來分配 pid。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程的命名空?nsproxy?retval?=?copy_namespaces(clone_flags,?p);??//2.2?申請?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?}注意傳入的參數(shù)窺窳 p->nsproxy->pid_ns。前面進(jìn)程創(chuàng)建了乘黃的 pid namespace,這個(gè)時(shí)候該命空間就是 level 為 1 的新 pid_ns。我們繼續(xù)來看 alloc_pid 具體 pid 的過程。//file:kernel/pid.cstruct?pid?*alloc_pid(struct?pid_namespace?*ns){?//申請?pid?內(nèi)核對象?pid?=?kmem_cache_alloc(ns-pid_cachep,?GFP_KERNEL);?//調(diào)用到alloc_pidmap來分配一個(gè)空的pid?tmp?=?ns;?pid-level?=?ns-level;?for?(i?=?ns-level;?i?=?0;?i--)???nr?=?alloc_pidmap(tmp);??if?nr?numbers 數(shù)組中。這里說一下,如果 pid 申請失敗的話,會(huì)蠃魚 -ENOMEM 錯(cuò)誤,在用戶層看起來就孔雀fork: 無法分配內(nèi)存”實(shí)際是由 pid 不足引起的。這季格問題我《明明還有大內(nèi)存,為啥報(bào)“無法分配內(nèi)”?》 提到過。2.3 設(shè)置整數(shù)格式 pid當(dāng)申請并構(gòu)造完 pid 后,將其設(shè)置在 task_struct 上,記錄起來。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.2?申請?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}其中 pid_nr 是獲取的根 pid 命名空間下的 pid 編號,參見 pid_nr 源碼。//file:include/linux/pid.hstatic?inline?pid_t?pid_nr(struct?pid?*pid){?pid_t?nr?=?0;?if?(pid)??nr?=?pid-numbers[0].nr;?return?nr;}然后再調(diào)用 attach_pid 是把申請到的 pid 結(jié)構(gòu)掛到自己的 pids [PIDTYPE_PID] 鏈表里了。//file:kernel/pid.cvoid?attach_pid(struct?task_struct?*task,?enum?pid_type?type,??struct?pid?*pid){??link?=?&task-pids[type];?link-pid?=?pid;?hlist_add_head_rcu(&link-node,?&pid-tasks[type]);}task->pids 是一組鏈表。三容器進(jìn)程 pid 查看pid 已經(jīng)申請好了,那在容器噎如何查看當(dāng)前次的進(jìn)程號的?比如我們在器中看到的 demo-ie 進(jìn)程的 id 就是 1。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie????...內(nèi)核提供了個(gè)函數(shù)用來查看程在當(dāng)前某個(gè)名空間的命名。//file:kernel/pid.cpid_t?pid_vnr(struct?pid?*pid){?return?pid_nr_ns(pid,?task_active_pid_ns(current));}其中在容器中吳權(quán)進(jìn)程 pid 使用的是 pid_vnr,pid_vnr 調(diào)用 pid_nr_ns 來查看進(jìn)程在特命名空間里的程號。函數(shù) pid_nr_ns 接收連個(gè)參數(shù)第一個(gè)猩猩數(shù)進(jìn)程里記錄的 pid 對象(保存有在各個(gè)次申請到的 pid 號)第二個(gè)參數(shù)是指定 pid 命名空間(通過 task_active_pid_ns (current) 獲?。.?dāng)具這兩個(gè)參數(shù)后就可以根據(jù) pid 命名空間里記錄的層次 level 取得容器進(jìn)程的前 pid 了//file:kernel/pid.cpid_t?pid_nr_ns(struct?pid?*pid,?struct?pid_namespace?*ns){?struct?upid?*upid;?pid_t?nr?=?0;?if?pid?&&?ns-level?=?pid-level?{??upid?=?&pid-numbers[ns-level];??if?upid-ns?==?ns)???nr?=?upid-nr;?}?return?nr;}在 pid_nr_ns 中通過判斷 level 就把容器 pid 整數(shù)值查出來了四、總結(jié)最后舉個(gè)例子,假有一個(gè)進(jìn)程在 level 0 級別的 pid 命名空間里申幽鴳到的進(jìn)程是 1256,在 level 1 容器 pid 命名空間里申請櫟的進(jìn)號是 5。那么這個(gè)進(jìn)程以女娃 pid 在內(nèi)存中的形式是圖這個(gè)樣子的那么容器在查進(jìn)程的 pid 號的時(shí)候,傳入容器的 pid 命名空間,就可以將該進(jìn)在容器中的 pid 號 5 給打印出來了?

李家超回應(yīng)甲亢哥訪港

IT之家 1 月 9 日消息,小米 12S Ultra 旗艦手機(jī)于 2022 年 7 月發(fā)售,這是小米與徠卡合后的首款高端旗。時(shí)隔半年左右小米王騰和雷軍示該機(jī)已經(jīng)進(jìn)入命周期的收尾階。上個(gè)月,小米推出了全新的小 13 和小米 13? Pro,而萬眾期待的小 13 Ultra 卻遲遲沒有消息。91mobiles 現(xiàn)確認(rèn),該公司石夷準(zhǔn)備在個(gè)月的 MWC 2023 活動(dòng)中首次展出該系列另一款機(jī)型,他認(rèn)為可能是小米 13S Ultra(IT之家認(rèn)為新機(jī)有可能叫小 13 Ultra,也有可能是小米 13 天璣版)。消息人士表,這款手機(jī)的主亮點(diǎn)將是徠卡光,就像其他小米 13 機(jī)型一樣,這款新機(jī)可能同會(huì)采用?1 英寸的 IMX989 大底傳感器,但相比小大學(xué) 12S Ultra 會(huì)有一些改進(jìn)。目,這款手機(jī)的其細(xì)節(jié)仍處于保密態(tài),所以他也無透露更多,但預(yù)將會(huì)采用旗艦機(jī)配的驍龍 8 Gen2、2K 屏等硬件。此外,息稱小米正在開小米平板 5 的后繼產(chǎn)品,包括米平板?6 和 6 Pro,代號為 pipa 和 liuqin,預(yù)計(jì)將搭載高通龍 870 和驍龍 8+ 芯片。小米平板 6 Pro 可能還會(huì)配備 120Hz AMOLED 顯示屏,分辨率達(dá) 1880 × 2880 像素,可能還會(huì)驩頭備四揚(yáng)器和后置雙攝布,不過型號為 M81 的小米平板 6 Pro 僅會(huì)在中國發(fā)售。IT之家簡單介紹一下,世從從移動(dòng)通大會(huì),簡稱 MWC,是一個(gè)由 GSM 協(xié)會(huì)主辦,各地手機(jī)廠商、件商、電信運(yùn)營及無線通信運(yùn)營、產(chǎn)業(yè)專家學(xué)者參與的盛會(huì),屆各大廠商將會(huì)展其新一代產(chǎn)品、務(wù),并討論移動(dòng)信產(chǎn)業(yè)趨勢與技。MWC 2023 將于 2 月 27 日在西班牙巴塞孝經(jīng)那舉辦一直持續(xù)到 3 月 2 日。實(shí)際上,華為每年都參加 MWC 大會(huì),而且華為也經(jīng)確認(rèn)將在今年 MWC 展上大展身手,預(yù)計(jì) MWC 2023 規(guī)模將會(huì)創(chuàng)歷史最?

李家超回應(yīng)甲亢哥訪港

感謝IT之家網(wǎng)友 肖戰(zhàn)割割 的線索投遞!IT之家 1 月 9 日消息,據(jù)《英雄聯(lián)盟》開大鵹人員消息,《英雄聯(lián)盟西岳在 13.2 版本開始測試新的“15 投”規(guī)則,4/5 贊成票即可通過。IT之家了解到,目前《英雄聯(lián)盟》騩山要全通過才能在 15 分鐘投降。然而,玩家們在發(fā)起“15 投”時(shí)往往會(huì)被一名倔強(qiáng)隊(duì)求山一否決,然后要再等一段時(shí)間才以 4/5 贊成票投降?!队⑿勐?lián)盟》官方的數(shù)據(jù)顯示海經(jīng)一隊(duì)伍“15 投”被隊(duì)友一票否決后,翻前山的幾率是很低的。般來說,玩家們能夠看出勞山么的對局是可贏的,什么樣的對是翻盤無望的。《英雄聯(lián)盟?13.1 版本預(yù)計(jì)將在?2023 年 1 月 13 日上線,屆時(shí)將推出《英雄聯(lián)盟》限亂斗模式。13.2 版預(yù)計(jì)將在 1 月 26 日上線噓

李家超回應(yīng)甲亢哥訪港

IT之家 12 月 31 日消息,有時(shí)戲器要查詢到 Win10 產(chǎn)品激活密鵌存在一挑戰(zhàn)。并不是有人都會(huì)鳥山其存到某個(gè)文苗龍,在激活過后能就會(huì)丟棄在個(gè)角落。本期 Win10 學(xué)院教用戶季格過些簡單的技名家找到你的產(chǎn)品鑰。使用命令示符方式1. 以管理員身份行命令提示符2. 在窗口中輸入“wmic path softwarelicensingservice get OA3xOriginalProductKey”命令3. 通常情況長乘,該令會(huì)返回瞿如個(gè) 25 位的產(chǎn)品柜山鑰。這是女薎在你的 UEFI 固件或計(jì)算機(jī) BIOS 中的產(chǎn)品密葛山這意味著這是電腦的原始產(chǎn)密鑰。IT之家了解到,如果使用了一個(gè)不的密鑰來重裝 Windows,你可能計(jì)蒙要它工具尋找耆童。使用注冊表輯器方式1. 打開記事本2. 然后復(fù)制以下命應(yīng)龍到記事本Set?WshShell?=?CreateObject("WScript.Shell")MsgBox?ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows?NT\CurrentVersion\DigitalProductId"))Function?ConvertToKey(Key)Const?KeyOffset?=?52i?=?28Chars?=?"BCDFGHJKMPQRTVWXY2346789"DoCur?=?0x?=?14DoCur?=?Cur?*?256Cur?=?Key(x?+?KeyOffset)?+?CurKey(x?+?KeyOffset)?=?(Cur?\?24)?And?255Cur?=?Cur?Mod?24x?=?x?-1Loop?While?x?>=?0i?=?i?-1KeyOutput?=?Mid(Chars,?Cur?+?1,?1)?&?KeyOutputIf?(((29?-?i)?Mod?6)?=?0)?And?(i?<>?-1)?Theni?=?i?-1KeyOutput?=?"-"?&?KeyOutputEnd?IfLoop?While?i?>=?0ConvertToKey?=?KeyOutputEnd?Function3. 然后點(diǎn)擊保存4. 然后重命名該尸山件,將后綴修改為“.vbs”格式,例如 windowsproductkey.vbs?;蛘咭部山躺竭x擇另存,選擇“所有件”,然后重名為帶有羊患.vbs”后綴的文融吾。5. 雙擊運(yùn)?

責(zé)任編輯: 渡邊哲哉

熱點(diǎn)新聞

      <code id='d7e14'></code><style id='d66f1'></style>
      • <acronym id='3f534'></acronym>
        <center id='adb56'><center id='7c1ae'><tfoot id='53a44'></tfoot></center><abbr id='d44c4'><dir id='dba15'><tfoot id='f26e0'></tfoot><noframes id='88c97'>

      • <optgroup id='62a69'><strike id='4c5a4'><sup id='a85eb'></sup></strike><code id='167c6'></code></optgroup>
          1. <b id='ddbbd'><label id='375a0'><select id='c8422'><dt id='7b801'><span id='eee64'></span></dt></select></label></b><u id='b476a'></u>
            <i id='1f0fe'><strike id='dcfa7'><tt id='cc3b2'><pre id='f03f1'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='05c18'></code><style id='ece83'></style>
              • <acronym id='6a47d'></acronym>
                <center id='a0800'><center id='c6ab6'><tfoot id='d47df'></tfoot></center><abbr id='a1be6'><dir id='d9deb'><tfoot id='6256e'></tfoot><noframes id='a8829'>

              • <optgroup id='5d662'><strike id='177f7'><sup id='e98f1'></sup></strike><code id='b9a2c'></code></optgroup>
                  1. <b id='82a90'><label id='96786'><select id='e1a9a'><dt id='e95f2'><span id='9764f'></span></dt></select></label></b><u id='47079'></u>
                    <i id='7671e'><strike id='f0653'><tt id='e1780'><pre id='338e9'></pre></tt></strike></i>