Linux 操作系統誕生到現在已經20年了,在這20年里,Linux 從學校里的玩物發展到今天成為操作系統中一股堅實的力量。我們從這 20 年中總結出 Linux 發展的 11 個重要的里程碑。
要說到線程(Thread)與協程(Coroutine)似乎總是需要從并行(Parallelism)與并發(Concurrency)談起,關于并行與并發的問題, Rob Pike 用 Golang 小地鼠燒書的例子 給出了非常生動形象的說明。簡單來說并行就是我們現實世界運行的樣子,每個人都是獨立的執行單元,各自完成自己的任務,這對應著計算機中的分布式(多臺計算機)或多核(多個CPU)運作模式;
今天是第一天來這里學習,希望能學到有用的東西。
排程原理排程三大概念Job(工作、任務)是一個獨立的工作單元,它會在一個給定的時間間隔上定時運行Trigger(觸發器)記錄了觸發job運行時的時程條件,這些條件可以是簡單或固定的時間間隔,也可以是記錄復雜條件信息的數據Scheduler(時程調度器,簡稱排程器)是一個trigger的集合,它的職責是管理和調度整個排程系統的運作實現步驟創建一個Job,它可能需要繼承一個job父類。
libgo 是一個使用 C++ 編寫的協作式調度的stackful協程庫,?同時也是一個強大的并行編程庫。 設計之初是為高并發分布式Linux服務端程序開發提供底層框架支持,可以讓鏈接進程序的同步的第三方庫變為異步庫,不影響邏輯的前提下提升其性能。
在2015年8月16日, Debian項目組慶祝了 Debian 的22周年紀念日;這也是開源世界歷史最悠久、熱門的發行版之一。 Debian項目于1993年由Ian Murdock創立。彼時,Slackware 作為最早的 Linux 發行版已經名聲在外。
當我們坐在 Debian、Fedora、Suse 等發行版本最新版本前,看著桌面操作的各種華麗效果,享受著各種易用的圖形界面應用給我們帶來的便利,是否對我們面前的這個操作系統如何而來有過思考? 我們是否考慮到在感恩節的時候,對隱藏在這個操作系統背后努力奉獻時間的人們抱有感恩之心呢?Linux OS,一路走來,風雨兼程,歲月有痕。
工作流(Workflow),就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。jBPM 即java Business Process Management,是基于java的業務流程管理系統。jBPM是市面上相當流行的一款開源工作流引擎,引擎底層基于Active Diagram模型。jBPM4.4使用了hibernate(3.3.1版),因此可以很好的支持主流數據庫。jBPM4.4共有18張表。
近些年攜程業務突飛猛進,用戶遍及世界各地。公司對用戶體驗也越來越重視,每一個小的功能改動、頁面改版的背后,都有大量的A/B實驗提供保障。與此同時,與用戶體驗息息相關的媒體文件的應用質量也被放到重要位置,如圖片加載延時、成功率、清晰度等數據。
和子例程一樣,協程也是一種程序組件。相對子例程而言,協程更加一般和靈活,但在實踐中使用沒有子例程廣泛。協程源自 Simula 和 Modula-2 語言,但也有其他語言支持。
這周一直在編前端構建的腳本,用到了多進程去解決一個效率問題。期間差了很多進程、線程、協程的資料,在這里記錄回顧一下。
批評一個語言,多半是對這個語言不了解的人,夸獎一個語言,多半也是對這個語言不了解的人。
服務 A 是我們開發的系統,它的業務需要調用 B 、 C 、 D 等多個服務,這些服務是通過http的訪問提供的。 問題是 B 、 C 、 D 這些服務都是第三方提供的,不能保證它們的響應時間,快的話十幾毫秒,慢的話甚至1秒多,所以這些服務的Latency比較長。
本篇將講述coroutine的一些背景知識,以及在Java中如何使用Coroutine,包括一個簡單的benchmark對比,希望能借助這篇blog讓大家了解到更多在java中使用coroutine的方法。采用Coroutine方式可以很好的繞開需要啟動太多線程來支撐高并發出現的瓶頸,提高Java應用所能支撐的并發量,但在開發模式上也會帶來變化,并且需要特別注意不能造成線程被阻塞的現象,從開發易用和透明遷移現有Java應用兩個角度而言目前Coroutine方式還有很多不足,但相信隨著越來越多的人在Java中使用Coroutine,其易用性必然是能夠得到提升的。
orchid是一個構建于強大的boost庫基礎上的C++庫,類似于python下的gevent/eventlet,為用戶提供基于協程的并發模型。 協程,顧名思義,協作式程序,其思想是,一系列互相依賴的協程間依次使用CPU,每次只有一個協程工作,而其他協程處于休眠狀態。
Spark SQL Overview<br> Catalyst in Depth<br> SQL Core API Introduction<br> V.S. Shark & Hive-on-Spark<br> Our Contributions<br> Useful Materials
用Python已經有近9年了, 大多數時候都是用它來做些內部使用的小工具,寫的都比較隨意(唯一的正式項目經歷,就是寫一個用戶評論搜索引擎,那個網站已經關閉了,當年的頁面可在archive.org看到)。 做這些開發時,開發的方法思路其實和十來年前沒啥差別,當然有了些更好的輔助工具,例如Git,Pycharm等, 但主要方法沒啥大變化。 這周用Python做另一個正式項目,嘗試采用了和以前都不一樣的方法,通過這一個星期學習到了不少新東西。
ptask 是 PHP 的協程擴展 使用這個擴展,使得PHP可以像Python和Lua一樣使用協程。
進程是具有一定獨立功能的程序關于某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。每個進程都有自己的獨立內存空間,不同進程通過進程間通信來通信。由于進程比較重量,占據獨立的內存,所以上下文進程間的切換開銷(棧、寄存器、虛擬內存、文件句柄等)比較大,但相對比較穩定安全。
為了應對日益嚴重的支付欺詐,攜程在線風控系統2011年正式上線。現在,在線風控系統支撐了攜程每日1億+的風險事件實時處理和100億+的準實時數據預處理;