面試準備
需要準備的知識點:
1. linux網(wǎng)絡(luò)編程,多線程,僵尸進程
2. 數(shù)據(jù)庫范式和基本sql語句
3. 項目
4. Select,poll
5. 在fork前加上信號處理函數(shù):
signal(SIG_CHLD, Proc_CHLD);
void Proc_CHLD(int SIGNO)
{
int pid = -1;
int stat;
while(pid=waitpid(0, &stat, WHNONG);
}
6. MFC消息機制,文檔視圖模型,生死之謎
7. Pthread_join是等待線程結(jié)束。Wait和waitpid是獲取子進程的退出碼,防止僵尸進程長期存在
8. .僵尸進程解決辦法:
4.1 改寫父進程,在子進程死后要為它收尸。具體做法是接管SIGCHLD信號。子進程死后,會發(fā)送SIGCHLD信號給父進程,父進程收到此信號后,執(zhí)行 waitpid()函數(shù)為子進程收尸。這是基于這樣的原理:就算父進程沒有調(diào)用wait,內(nèi)核也會向它發(fā)送SIGCHLD消息,盡管對的默認處理是忽略,如果想響應(yīng)這個消息,可以設(shè)置一個處理函數(shù)。
4.2 把父進程殺掉。父進程死后,僵尸進程成為"孤兒進程",過繼給1號進程init,init始終會負責清理僵尸進程.它產(chǎn)生的所有僵尸進程也跟著消失。
kill -9 `ps -ef | grep "Process Name" | awk '{ print $3 }'`
其中,“Process Name”為處于zombie狀態(tài)的進程名。
4.3 殺父進程不行的話,就嘗試用skill -t TTY關(guān)閉相應(yīng)終端,TTY是進程相應(yīng)的tty號(終端號)。但是,ps可能會查不到特定進程的tty號,這時就需要自己判斷了。
4.4 實在不行,重啟系統(tǒng)吧,這也是最常用到方法之一。
getpid() fork()的問題
fork()函數(shù)用于復制父進程,這個父進程是指當前進程嗎?
如果是當前進程,為什么我pid=fork()獲得的ID和pid=getpid()獲得的ID不一樣
pid=fork()與ppid=getppid()獲得的ID也不一樣
getpid()和getppid()也是分別獲得當前的ID和父ID首先你得理解一個fork調(diào)用會返回兩次,分別在父子進程中返回,并且返回值是不同的。
而fork以下的代碼如果不加控制,就會分別在父子進程里面都繼續(xù)執(zhí)行下去。
要有效區(qū)分“當前”進程是父進程還是子進程的方法就是查看fork的返回值。
假如有一個進程,其pid為100,那么在這個進程來里面調(diào)用getpid()應(yīng)該得到100。
接下來,該進程調(diào)用了fork(),產(chǎn)生了pid為101的子進程,那么
在原有的100進程(父)中,fork的返回值是101,也就是子進程的pid;
再次getpid()得到100,getppid()將得到祖父進程的pid,也就是既不是100,也不是101的其它值。
在新生的101進程(子)中,剛才產(chǎn)生了它本身的fork的返回值是0;
再次getpid()得到101,getppid()將得到100。
**的優(yōu)勢:
**提供給客戶的不僅僅只是降低員工的需求,服務(wù)器綜合維護成本降低,安全,全球化,效率提升。
自己思考的優(yōu)勢:還可以幫助游戲開發(fā)者,游戲開發(fā)團隊,游戲開發(fā)公司提升知名度,打造游戲開發(fā)者的品牌。舉例,開心農(nóng)場的開發(fā)者實5分鐘公司,開心農(nóng)場在中國風靡,幾乎人人皆知,但是很少有人知道開心農(nóng)場是5分鐘公司開發(fā)的。比如在人人網(wǎng)上,很多人玩開心農(nóng)場,喜歡上開心農(nóng)場,很自然以后人人網(wǎng)出了其他游戲,很多人會因為喜歡開心農(nóng)場而且玩人人上的游戲,這就是所謂的愛屋及烏。但是問題出現(xiàn)了,現(xiàn)在假如5分鐘公司出了一款新游戲,它沒有在人人上發(fā)布運營,本來很多人喜歡開心農(nóng)場,按理會支持5分鐘公司的其他產(chǎn)品,但是由于5分鐘公司知名度不高,很多人不知道開心農(nóng)場是5分鐘公司開發(fā)的,所以如果一旦5分鐘公司把自己的產(chǎn)品發(fā)布到其他平臺,就不一定有很多的受眾。所以對于游戲公司來說,要打造自己的核心品牌,要讓玩游戲的知道該游戲是自己公司開發(fā)的,之后,該公司發(fā)布游戲,就不用受制于運營商了。而**可以提供這個平臺,不僅給游戲公司提供sns連接平臺,更可以通過行云自己的平臺來發(fā)布他們的游戲,**可以只是作為游戲的發(fā)布平臺,游戲的所有者是游戲公司,從而幫助提高游戲開發(fā)公司的知名度。
posted on 2011-05-30 15:36 MrRightLeft 閱讀(295) 評論(0) 編輯 收藏 引用 所屬分類: 心情日志