開發與維運

開發與維運

一文帶你理解java中的同步工具類CountDownLatch

一、定義 CountDownLatch的作用很簡單,就是一個或者一組線程在開始執行操作之前,必須要等到其他線程執行完才可以。我們舉一個例子來說明,在考試的時候,老師必須要等到所有人交了試卷才可以走。此時老師就相當於等待線程,而學生就好比是執行的線程。 注意:java中還有一個同步工具類叫做CyclicBarrier,他的作用和CountDownLatch類似。同樣是等待其他線程都完成了,才可以進行下一步操作,我們再舉一個例子,在打王者的時候,在開局前所有人都必須要加載到100%才可以進入。否則所有玩家都相互等待。 我們看一下區別:CountDownLatch: 一個線程(或者多個), 等待另外N個線程完成某個事情之後才能執行。 CyclicBarrier : N個線程相互等待,任何一個線程完成之前,所有的線程都必須等待。關鍵點其實就在於那N個線程(1)CountDownLatch裡面N個線程就是學生,學生做完了試卷就可以走了,不用等待其他的學生是否完成(2)CyclicBarrier 裡面N個線程就是所有的遊戲玩家,一個遊戲玩家加載到100%還不可以,必須要等到其他的遊戲玩家都加載到100%才可以開局 現在應該理解CountDownLatch的含義了吧,下面我們使用一個代碼案例來解釋。 二、使用 我們使用學生考試的案例來進行演示: public class CountDownLatchTest { static CountDownLatch countDownLatch = […]

開發與維運

詳解java中的同步工具類CyclicBarrier

一、概念理解 CyclicBarrier允許一組線程在到達某個柵欄點(common barrier point)互相等待,直到最後一個線程到達柵欄點,柵欄才會打開,處於阻塞狀態的線程恢復繼續執行。 就比如說我們在打王者的時候,十個人必須全部加載到100%,才可以開局。否則只要有一個人沒有加載到100%,那這個遊戲就不能開始。先加載完成的玩家必須等待最後一個玩家加載成功才可以。如果你實在記不住,你可以想象成人滿發車的長途,就算你是第一個上車的人,也要等待車滿才可以發車。否則車上所有人都要等待。 與CountDownLatch的區別就是是否相互等待。舉一個例子,CountDownLatch就好比是馬拉松比賽,跑完的人不用等待其他選手是否結束,而CyclicBarrier需要等最後一個玩家加載結束。這就是區別。 我們直接代碼演示一下這個例子。 二、代碼演示 在這裡我們同樣使用的是打王者的例子。 首先我們定義main線程: public class CyclicBarrierTest { public static void main(String[] args) {

開發與維運

一文理解java線程間協作問題的工具類Exchanger

一、概念理解 Exchanger的作用就是為了兩個線程之間交換數據,他提供了一個內部方法exchange,這個內部方法就好比是一個同步點,只有兩個方法都到達同步點,才可以交換數據。我們換一張圖來演示一波。 也就是說只有線程A和線程B都到達同步點,才可以交換數據。 我們上代碼直接看看如何使用,然後再去看看使用的時候需要注意什麼。 二、使用案例 1、基本使用 首先我們定義一個測試類ExchangerTest: public class ExchangerTest { private static Exchanger<String> exchanger = new Exchanger<>(); private static

開發與維運

【Flume】(四)Flume 企業真實面試經驗

文章目錄 一、你是如何實現 Flume 數據傳輸的監控的 二、Flume 的 Source,Sink,Channel 的作用?你們 Source 是什麼類型? 三、Flume 的 Channel Selectors 四、Flume 參數調優 五、Flume 的事務機制 六、Flume 採集數據會丟失嗎?

開發與維運

詳解java中的同步工具類Semaphore

一、概念理解 官方是這樣解釋的: Semaphore用於限制可以訪問某些資源(物理或邏輯的)的線程數目,他維護了一個許可證集合,有多少資源需要限制就維護多少許可證集合,假如這裡有N個資源,那就對應於N個許可證,同一時刻也只能有N個線程訪問。一個線程獲取許可證就調用acquire方法,用完了釋放資源就調用release方法。 不過這樣的解釋實在有點抽象,現在用我自己的話來解釋一下: 相信在學生時代都去餐廳打過飯,假如有3個窗口可以打飯,同一時刻也只能有3名同學打飯。第四個人來了之後就必須在外面等著,只要有打飯的同學好了,就可以去相應的窗口了。 比如說這張圖,就全是了Semaphore的基本使用。認識一個知識點的最好方式就是直接去使用,我們乾脆直接上代碼來看看如何使用。 二、代碼使用 這個案例使用的就是我們之前的小例子,也就是去餐廳打飯的案例。 我們先看Test類: public class SemaphoreTest { //第一步:定義一個信號量Semaphore static Semaphore sp = new Semaphore(3);

開發與維運

關於ECS的初次使用體驗

我是一名大二的學生,學習的專業是物聯網應用技術,在我所學的課程中,有一節雲上運維技術的學習,在這節課的學習中就會運用到阿里雲。使用雲服務器ECS就像使用水、電、煤氣等資源一樣便捷、高效,無需提前採購硬件設備,而是根據業務學習的需要,隨時創建所需數量的雲服務器ECS實例。在使用過程中,隨著業務的擴展,也可以隨時擴容磁盤、增加帶寬。如果不再需要雲服務器,也能隨時釋放資源,非常方便。在第一次連接後我欣喜若狂,彷彿解決了世紀難題但其實更大的難題在拐角處等待著我。之後我按查詢的資料打算親自配置java+tomcat+mysql環境,但這個天真的想法毀了我剛剛得到的好心情。在配置java與tomcat時沒出現太大的問題但在mysql上便問題重重,在我查詢資料和認真思考後認為是缺少必要的插件,因為我目前使用的是裸機一切都需要自己搭建這對我這個服務器小白來說是滅頂之災,但好在我發現了鏡像這一功能。鏡像的使用能使你免受環境搭建的痛苦,我們可以在鏡像市場中挑選適合自己所需運行環境這樣我們就無需自己搭建。如我的需求是向服務器上傳javaweb項目,我選擇的鏡像就包含了java,tomcat,mysql這三大類。當我第二次連接後服務器已經搭建好了環境,同時桌面上出現了一個TXT文檔裡面是一串字符。經過查詢和分析認定這是數據庫的密碼但賬號還不得而知,於是我回到我選擇的鏡像的使用說明中查看詳細信息;很遺憾他沒能給我任何有用信息。我便大膽的嘗試了“root”這一祖傳通用用戶名,沒想到連接成功了!至此關於環境搭建的問題得以解決。阿里雲的ECS技術zhe真的是太方便了,運行穩定,數據也不會丟失,使用起來又方便,現在對我們學生還有支持優惠,簡直是太棒了很推薦大家使用阿里雲的ECS。

開發與維運

我的雲服務器ECS的體驗

第一部分我是來自天津濱海職業學院一名學生,目前在大二,就讀於物聯網專業,雲計算是我的一“”門課程,在這門課程中通過老師的指導與推薦,瞭解到“飛天加速計劃高校學生在家實踐”活動,逐漸的對它有了很大的興趣,並且註冊了賬號,進行了學生認證,然後再次領取到了兩週的免費試用期ECS服務器,希望能夠有更多的時間可以更深的瞭解到關於雲計算的更多知識。第二部分在這門課程中,通過老師講解,瞭解到了雲服務器ECS,知道了雲服務器ECS是阿里雲提供的性能卓越、穩定可靠、彈性擴展的Iaas級別雲計算服務。雲計算服務器ECS免去了我們採購IT硬件的前期準備,讓我們像使用水、電、天然氣等公共資源一樣便捷、高效地使用服務器,實現計算資源的即開即用和彈性伸縮。在雲服務器使用過程中發現了這些小技巧:(1)雲服務器即雲主機系統系統安裝後,默認只有一個10G的C盤用於操作系統,第二個盤的大小由產品決定,如買了一個500G硬盤的雲服務器,那麼第二個硬盤是490G,可以按照自己需求自行劃分多個硬盤; 劃分辦法:1、“我的電腦”右健-管理;2、選擇磁盤管理;3、點下一步;4、一直執行“下一步”;5、選擇“未指派磁盤”點右鍵,新建卷;6、執行下一步,空間容量自己劃定分區的大小,如果不改,默認只分一個區;7、執行下一步,指派驅動器號;8、卷區格式化,選擇執行快速格式化;9、完成;如果你在第6步的時候選擇空間大小,會多出一個磁盤驅動器,等於是多分了幾個區,每個區都要執行第5步到第9步的過程。(2)如果雲服務器使用預裝系統功能時,擔心會不會導致用戶的數據全部會丟時,可以只預裝C盤,不會影響第二硬盤,也可以全盤格式化。(3)登陸租用的雲服務器時,與獨立服務器一樣,windows系統使用遠程桌面連接:在本地電腦上點開始、程序、附件、通訊、遠程桌面連接;LUNIX系統使用SSH軟件進行遠程命令行模式連接。 (4)可以修改IP和MAC地址,可以更換單個和多個IP。第三部分“飛天加速計劃·高校學生在家實踐”激起了我的學習慾望,還提供了我學習的平臺。十分感謝阿里雲“飛天加速計劃·高校學生在家實踐”給了我這個沒有資源以及自主收入的大學生這麼一個十分寶貴的機會,我會利用這次機會,努力提升自己,對社會做出自己的一份貢獻。

開發與維運

esc雲服務器試用體驗

各位朋友你們好,我是四川信息職業技術學院的一名大三學生,我學的專業叫軟件技術,方向是前端方向。但是在外面培訓的這段時間我更偏向於運維,而運維當然是與服務器分不開的,相比在自己電腦上安裝虛擬機來說,雲服務器會更加方便更加真實,所以我們老師給我們推薦了阿里雲高校計劃,通過簡單的考試之後我拿到了兩週的試用資格,使用雲服務器的第一感覺就是很方便,性能強,系統都是一鍵安裝。在控制面板裡管理服務器也是非常的簡單,可視化做的非常好,一系列的操作按鈕可以解放很多複雜的操作,最重要的是他的彈性功能非常的人性化,如果當前服務器滿足不了需求的話還能添加磁盤,加寬帶等操作,一切都是自己做主,讓我想到了自己配電腦一樣,但是是在雲端操作,十分的方便。也非常感謝阿里雲官方能給這次機會讓我體驗到了阿里雲的雲服務器打開了新世界。 在經過兩週的學習我瞭解到了xshell軟件,在進行遠程連接的時候十分的方便。在後面學習到了創建快照,安全組放行的一些知識感覺很實用。再後來就進入到了Linux的學習,學習一些Linux的基本命令,還下載了一些很實用的工具,比如git tree zip,學習內容分別有文件管理,用戶管理,磁盤管理,https,http,ftp,xshell編程等等,後續我們還會學到k8s,我很期待之後的學習內容,同時也感覺到了阿里雲esc服務器的強大,後面經過同學的推薦見識到了寶塔集成面板,一鍵直裝可視化操作,各種開發環境都有,屏蔽了nginx+php+mysql開源環境管理的基本功能的複雜度,圖形化對小白友好。 之後除了跟著老師學習k8s,docker,集群服務器,我還會註冊域名建立一個自己開發的網站,當然了,阿里雲高校計劃這麼好的活動我會推薦給更多的同學。

開發與維運

ECS服務器使用感受

本人就讀於天津市的一所大學,就讀大二,專業為物聯網,通過課堂老師瞭解到飛天加速計劃高校學生在家實踐活動。我參照了網上的教程在服務器上很快的就搭建好了php開發環境,安裝了mysql,發佈了一個項目。在遇到問題的時候在百度上尋求答案,查找答案並請求老師幫助,我們使用的是TCP服務器,所以需要在控制檯,以及防火牆中配置端口設置。新建新的出入站規則。然後在命令窗口中輸入IPCONFIG命令,查找本機的ip地址,(公網ip以及端口號)輸入到使用的網絡模塊中,最後就可以進行外部的網絡接入了。我通過直接在Xshell的控制檯通過Linux的命令來修改。通過瀏覽雲服務器控制管理器中的監控面板,我知道在哪個地方可以修改密碼,監控CPU的使用率等。也可以通過我的教程來學習快速搭建網站、部署開發環境等。 在我使用的過程中最讓我難忘的瞬間就是,我的項目在遠程服務器上部署成功了,然後可以通過公網IP地址去訪問我的網站。在沒有遠端服務器之前我的項目都是部署在本地通過本機的服務器訪問的,這對我來說真的很驚喜的。也從中學到了,一個web應用要在服務器上運行,不僅僅要把資源放到服務器上,更要將一些特殊的端口進行放行,這樣才能正常運行。總結:我學習到了服務器的含義,以及服務器的用法,與硬件相連。瞭解到php,html/css,可以遠程連接到自己的服務器和mysql。利用php做出了自己的項目,在自己服務器上面,網絡時代已經到來,我們只有不斷通過自己的努力學習來完善自己,雖然過程艱辛,但是最終的成功時喜悅的,這次活動對我在開發道路上的幫助很大,首先第一次對雲服務器有了深刻的瞭解,知道了它的一些優點,比如隨時隨地在線訪問、數據的安全性更高。也通過這個平臺讓我學會使用Linux操作系統。雲服務器方便了學習人員的項目部署,如使用虛擬機要配置網絡,但是使用雲服務器網絡配置阿里雲已經配好了,我們直接使用就好。也促進了開發者的開發熱情,可以方便的建站。最後希望阿里能在這方面越做越好。感謝阿里雲提供這麼好的平臺,我也希望在將來能為中國的信息建設方面貢獻自己的一份力量。這兩週的免費體驗阿里雲服務器不僅讓我更深切地瞭解了雲服務器這個概念,更讓讓我學習到了一些雲服務器的知識也複習了一些快要忘記的Linux操作,受益很深,感謝阿里雲讓我有了這次機會,我也相信我會在這條道路上越走越遠。

Scroll to Top