看板 Soft_Job 關於我們 聯絡資訊
這真是令人懷念(?) 的過程啊 撇除一些書卷型的強者, 魯叔我也經歷過這些過程 研究所畢 - 工作1-2年的時間 這個時候對process和thread的概念, 就是內清外糊 心裡知道"大概"是怎麼樣的概念, 程式也都寫的出來 但是搬上臺去和面試官講就是怎麼講他老人家怎麼不滿意 這是因為自己還沒有全然貫通這個觀念, 或是只在user space, 開發所造成 所以要自己去用常日生活去解釋這個認知, 會發生困難 工作4~未滿10年 這時後應該是原PO的狀態 內清外也清, 因為被系統整合操過, 也被G8的bug婊過 所以漸漸的已經把概念性認知轉成實體化認知 不管是哪一個方面的bug切入都游刃有餘 但是對於"錯誤解釋"會完全先套自己已經成型的邏輯去分析對錯 所以會比較無法分析在stage 1的小朋友是真懂還是假懂 這一階段, debug 電腦, 所向批靡 debug 人腦, 還待努力 工作10+年 魯叔我已經快要到這個階段了 在經過硬(ㄙㄞ\)工(ㄓ/)夫(ㄑㄩㄝ)的鍛練下 各種platform都摸過, user/kernel都玩過 原PO的process/thread在我內心區分和定義遭到衝擊 它們的邊界就會越來越灰 就有點像楊過 少年百家雜學, 博而不精 青年剛力重劍, 無堅不摧 中年木劍奇掌, 無劍勝有劍 process/thread在我心中已經只是兩個單字, 兩個變數 我腦中只留四個字: 系統特性 翻成英文叫做: OS depends 回到正題 在stage 1的新手, 應該只是模糊的覺得這兩個都是CPU多工的單位, 有啥不同 那很簡單, 不要硬叫他用日常的例子來舉, 因為他的認知還不到那邊 這時只要寫個linux程式, 要它指出什麼情況下哪些scope的變數會共用, 哪些不會 或是兩個main()在跑是不是資源也會共用, 要怎麼共用 這樣一解釋就算無法舉例, 但是寫出來的code也不至於沒有概念 CS大學教育的通病就是概念/設計型的學科和務實程式認知沒有拉起橋樑 大多老師就程式C就教C, OS就照恐龍本唸 幹這兩個要一起教好不好, 計概請先從其他程式語言先學好嗎...=_= 另外, 小算盤的加減乘除也算thread喔 以前魯叔我的時代要是mouse click event沒有用thread分開的話 按鈕之間可是會互相blocking der~~ 這種東西不是教科書, 教授, 你或我說了算 端看你從哪個角度(framework/OS/user ap)去解釋些名辭 說不出來的不一定不懂, 說的出來的不一定會教 以上 ※ 引述《xsion (Xsion)》之銘言: : 某B是小弟的朋友,最近正在求職找資深工程師的職位(目標月薪50K)。不過其求 : 職過程不甚順遂,面試常被慘電。上次面試他被慘電的題目之一是被詢問Process : 與Thread的差異,小弟指引他被電過的題目要搞懂。過了幾天後有了以下的對話: : A: 上次的Process 和 Thread搞懂了嗎? : B: 搞懂了 : A: 說說看 我幫你打個分數 先一百字以內 把你所知塞進一百字以內 : ......四分鐘後...... : B: Process:已經被LOAD到記憶體中準備執行的code, : 一個多工的作業系統可以同時運行多個process,但CPU一次只能執行一件事 : 因此每個process需要排程; 在同一個preocess下有許多分身就是Thread,而 : Thread共享process的資源,可以存取同一個Process的Gobal變數,而每一個 : Thread可能互搶資源造成Deadlock : A: 哈哈,這不是網路上的解釋嘛 : ......離題討論到CPU Pipeline stage 中略...... : B: 我的映像中老師是說 process是要去偷時間插入clock中 : A: 你能具體地告訴我 你寫過的程式中,那些是Process 那些是Thread嗎? : B: 譬如說一個小算盤叫process 他的加減乘除工能就是Thread : A: 你或許能從網路上找到不錯的解釋應付過去第一層的問題 : B: 但是只要一問下去 就嚴重暴露了你實際上沒有懂得內含了 : A: 小算盤的例子為何你會認為加減乘除是寫成Thread呢? : 如果我再問你 甚麼時候你會寫成Thread,考量的點是什麼? : 甚麼時候你會寫成Process? : B: 我剛舉的例子有問題 我再舉一個來回答你的問題好了 : 用網路遊戲打怪來作利子 : 如果用process來設計 會變成搶怪的人得不到任何經驗值 也無法組隊打怪 : 如果是Thread的話 就可以作到可以共享經驗 一起打怪 然後經驗值根據打怪的 : 輸出不同來分配 : 最後這分數我始終沒有打下去,不知道版上的大大有沒有什們辦法可以幫助小弟 : 的朋友搞清楚觀念啊。他舉的例子我實在聽不懂,幫不上忙。 -- 520前............. 政大金融系教授李桐豪:我們可不可以做決議 ,全國老百姓碰到陳水扁就可以槍殺他。 國民黨榮譽黨主席連戰:台灣的總統有什麼了不起,人人都可以誅之啊! 前主席宋楚瑜:殺陳水扁或活抓他,好不好 520後............. 嗆「撲殺馬英九」 江宜樺:開玩笑也違法! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.3.192 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1406698209.A.6D8.html
lovdkkkk:推 系統特性 07/30 13:46
xsion:大叔你以前該不會每一個event都開thread去處理吧? 照樣能不 07/30 13:48
xsion:死結衝突 也算是超強者耶 07/30 13:48
xsion:現在在寫沒OS的mcu 啥process thread根本過往雲煙了 07/30 13:50
jackyu:當然不是啊~~只有response不能確定的才開thread 07/30 14:48
jackyu:話說有ICE的mcu寫起來比起linux AP爽多惹 07/30 14:48
xsion:現在還是常有天兵button click按下去就開始狂算data 搞到 07/30 15:33
xsion:視窗畫面都沒辦法更新 Windows回視窗無回應是否要關閉 07/30 15:33
xsion:被客訴還死不認定這是bug 07/30 15:34
bndan:剛剛跟上司吃飯才聊到類似題XD 推"系統特性" 07/30 15:39
typepeter:推 07/30 18:26
loseptt:thread和process就使用核心資源不一樣 也可以寫一長串 07/30 20:00
snaketsai:推OS depend,Linux表示安安拎北LWP跟其他家都長不一樣 07/31 01:56