學過少少multithreading,香港有冇相關既工種呢?

我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種

除左ibank既front office electronic trading或證卷交易平台,有冇相關既工種係接觸到multithreading既呢?

我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種

...
procapitalist 發表於 2018-4-14 05:16



    你咁問法, 好有興趣知你係邊間大學讀? ........

TOP

樓主好似提過英國留學,當地 buy side 投資行做 programming...

你計劃回港發展?

TOP

樓主好似提過英國留學,當地 buy side 投資行做 programming...

你計劃回港發展? ...
rkkc 發表於 2018-4-14 00:35



無錯,我目前係d大行做front office electronic trading做左junior dev 1年咁,用過少少multi-threading,深d既知識通常都係師傅(senior developer)做。不過覺得學識multithreading好似都係做金融圈既IT工多,如hedge fund,buy-side,HFT,不過對金融圈外既工接觸唔多...

TOP

我之前大學學過少少java multithreading,覺得locks, callable, thread pool幾有趣下,想搵下相關既工種

...
procapitalist 發表於 2018-4-14 05:16

而家有咩program唔係multiple thread ?

via HKEPC Reader for Android

TOP

而家有咩program唔係multiple thread ?

via HKEPC Reader for Android
燕飛 發表於 2018-4-14 14:47



    其實無咩係 multiple thread 就真
多數 都只係會係 scheduled task 做 multithreading, 又或者比較多的會係 web
一般的 係唔會有
因為 multithreading 係幾難去 implement.... 你寫過 java 的 Future/ 同 Go 的 go-routine 就知個分別

TOP

本帖最後由 hihihi123hk 於 2018-4-14 23:08 編輯

回覆 4# procapitalist


    呢個年代寫 Retail Application 好多時都唔需要 ultra low latency, 能足夠活用到 multiple-core CPU 已經足夠,所以根本無需要好 low level 咁接觸 "Threads"

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

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

老土咁講,Thread 係一個龐然大物,唔正確咁用設計及 Implement 出黎嘅 program 會好唔 efficient,錯誤咁用 Thread (例如乜都開支 Thread 做野以為會快啲/ 有 IO Block 住支 Thread),Threading 入面嘅  Context switching 及 Task Scheduling 或 Write Contention 會帶黎更高 latency。

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

設計一個 ultra-low latency 嘅 Application,終極目標係能夠做到 Mechanical Sympathy,例如 LMAX 設計嘅 Disruptor 所用到嘅  Ring Buffer 係一個好好嘅例子去參考下

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

TOP

金融圈既IT工多,如hedge fund,buy-side,HFT


不過呢類工種好多時係不斷轉 strategy、Back testing、Paper trade 最後就上 production,但求 Work 行到及「唔會太慢」已經足夠,好少會做 Benchmark 及接觸到 Software Engineering 範疇

所以樓主首先自己要搞清楚係「對 Software Engineering 有興趣」定係「對寫呢啲野賺到錢有興趣」

話就話都係寫 Code,但絕對係兩回事

TOP

本帖最後由 chi251155 於 2018-4-15 00:37 編輯

仲thread乜鬼,好多application係distributed咁行。
除非你寫啲low-level少少既tool,例如你寫db之類,或者game engine之類。
寫吓web app既話,client-side worker幫你wrap咗,back-end node 你只會見到single-thread。
好多computation做parallelism都好少自己call thread,CPU就用OpenMP,GPU就CUDA or OpenCL,distributed就spark/hadoop。
threading concept重要但只係冰山一角。
基本上進程係咁:concurrent -> parallel -> distributed。

TOP

回覆  procapitalist


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


原來而家multithread已經簡單咗咁多
我對multithread既記憶重停留喺要自己砌好條function, call CreateThread(), 儲起啲handles, 同埋諗點分配啲task如果唔係會撞或者唔同步...

TOP