提示: 作者被禁止或刪除 內容自動屏蔽

TOP

一般公司自己寫的 MIS/ERP 未必需要理 multi-threading 的!
真的要特別用途的 programs 先會.... 例如 炒 ...
toylet 發表於 2018-4-15 00:57


自家 high availability 的 system就會, 例如 twitch, spotify, whatsapp 果類

TOP

回覆  procapitalist


    呢個年代寫 Retail Application 好多時都唔需要 ultra low latency, 能足夠活 ...
hihihi123hk 發表於 2018-4-14 14:49

正!師兄d content真係好詳盡

現時基本上寫一個 "Future" Submit 去 Thread pool 等佢自己 execute 比起自己 manage threading 更 efficient 及更少機會出錯及更容易 Maintain;所以一般 Retail 嘅 Application dev 好少情況會用到你用緊嘅野

仲有其它 highly concurrent 嘅 pattern,例如 Co-routine, actor model 等等都可以好 efficient 咁活用 multiple-core CPU 而完全唔需要接觸 "Threads"

我都想就咁用"future"去Submit一個runnable task ,不過interview時候會問至少幾條關於,不過我都會search下你co-routine, actor model, LMAX, Mechanical Sympathy, Disruptor睇下係咩黎先,唔該先!

簡單一個問題,你有無 Benchmark 過你寫嘅 Application ?假設你所有野都係 in-memory 咁做,普通落個 Order (唔計 Network latency),如果你嘅正常 Use case Average latency > 10 µs ,可能已經中咗上述講嘅問題(當然都有機會係其它問題)


做過benchmark下,我條team最主要唔係做execution,係做pricing,execution留返第二條team搞。latency方面,我哋仲系用milliseconds計算 ,所以d trader/quant都想我哋降低latency

另外其實 Data structures 比起 Threading 更加重要  ,O(N) 同 O(logN) 已經係兩個世界,唔好錯重點


我同意data structure重要,而且都可以幾詳細下,正如bubblesort同merge sort既速度已經係兩個世界。另外data structure係咪thread safe都好重要,e.g. concurrenthashmap vs. hashmap



好奇問下-師兄係咪都係做金融界既developer?

TOP

仲thread乜鬼,好多application係distributed咁行。
除非你寫啲low-level少少既tool,例如你寫db之類,或者 ...
chi251155 發表於 2018-4-14 16:31

我都好同意依家既low-level concurrency/threading既code都係encapsulated左,但係始終我都接觸過d low level野。而我去趁d第一回合面試時候都會至少問五六條concurrency既問題。
問deadlock/race condition基本上係例牌,其餘回問explicit lock vs. implicit lock,有d咩唔同lock,future vs. callable, what is a thread pool,有d咩data structure係thread safe咁 etc...

TOP

本帖最後由 procapitalist 於 2018-4-15 09:30 編輯

講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concurrency principles既時候。

我都認同呢個方向係無錯既,因為除住科技進步,我哋好多現代既程式編碼語言既low level details都被abstract/encapsulate左,根本唔洗點理low level野。

我幾個月前都有咁既想法,但係我而家終於知道學low level野既重要性(當然未去到assembly code既層面):個code quality係點,同埋個performance係點,好多時候都係取決於你可唔可以運用你low level既知識。有錯請指正:我覺得砌一個cryptocurrency exchange既backend都要識好多threading同埋performance既野

但係面試時候始終都要問呢d low level野,唔系就咁sai下你之前寫過乜app乜app,做過d咩大project,就過倒關,programmer interview唔同sales interview,係會被問得好詳細(初級工程師既面試都係咁),你唔識果d野時候,你個裂縫(crack)就會露出黎。例如,你參加java developer面試時候,你會被問到garbage collection係乜,也都會問到不同GC既運作,例如minor GC vs. major GC既運作。我其實之前都係以為略懂garbage collection係乜就可以算數。咁既話其實一開始學C/C++會更加有效,因為會接觸到low level concept。

不過我當然認為學俾多d時間學high level野都重要既,所以我並非強調只係學concurrency既low level implementation既野,都要考慮埋大層面。

TOP

本帖最後由 snoopy11hk 於 2018-4-15 18:30 編輯
講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concur ...
procapitalist 發表於 2018-4-15 17:25


"但係我而家終於知道學low level野既重要性(當然未去到assembly code既層面):個code quality係點,同埋個performance係點,好多時候都係取決於你可唔可以運用你low level既知識。"
leaking abstraction.......

我唔太清楚你點解咁諗.... 但係我唔覺得係呢樣野
好多時都只係要 meet requirement... 而 D 野其實無咩太 technical, 大多 Stackoverflow 都會有

只要你識整合, 利用, 就已經好 ok
反而 problem solving skill 就係一個好 real factor...

TOP

我都好同意依家既low-level concurrency/threading既code都係encapsulated左,但係始終我都接觸過d low le ...
procapitalist 發表於 2018-4-15 14:08


    知識我相信冇人會嫌多

但始終學海無涯,時間有限

太廣太淺無意思

太窄太深亦未必係一件好事

我自己取態係先廣後深,拓寬自己視野之後再判斷喺邊一方面再 dig deep,太早 dig deep 反而好難抽身,好容易變成 HKNOIT

我相信各種工具總有共通點,起步階段學識點學野先係重點之重

樓主先岩岩開始咗一年,睇多啲野先唔係一件壞事

via HKEPC IR Pro 3.0.0 - iOS(2.2.0)

TOP

本帖最後由 ROM 於 2018-4-17 14:05 編輯
講真,係呢個帖入面大部分人(除左兩三個之外)都覺得唔洗學咁多low-level既concurrency syntax and concur ...
procapitalist 發表於 2018-4-15 17:25



    我覺得你所講既野 其實都係有關你對個encapsulation 認識有幾深
正如background worker 同 thread pool 基本上係相同功能既encapsulation 但用途及特點都好唔同
認識Low level 野對認識個encapsulation有少少幫助
但係唔係必須? 我覺得唔係

TOP

本帖最後由 chi251155 於 2018-4-17 01:06 編輯

回覆 14# procapitalist
有個knowledge打底係好。但knowledge同有冇工作係兩回事。你問有無咩相關工種,只可以講工作往往唔係比你試你學識既野,係真係production ready,要concurrency既程度去到好critical,自然會搵啲expert去搞。點成為expert?通常係你做嗰範要經常analyse concurrency,人地又知道你做得好,而且其他人做唔到、比你慢、比你差。不過老老實實,undergrad都學到既野,出黎做野既veteran點都有個底。problem solving skill高啲嘅,1個星期都搞清晒。concurrency好fundamental,好少話有咩特別工種,好睇個domain係咩,例如有處理開db既concurrency問題既engineer,唔會識搞game engine既concurrency,亦唔會識搞video streaming既concurrency。

你問個問題就好似,學過少少algorithm analysis,香港有無相關工種。基本上好多工都相關,但你係咪只係做algorithm analysis同呢?明顯唔係。你係咪要精到去design新algorithm呢?unlikely

真係要搵有機會用到你啲knowledge既公司,應該係馬會、八達通、地鐵之類,多人用,performance critical既application。

TOP

off topic一問,有無咩方法學好algo
下個sem要讀

TOP