亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2080 | 回復(fù): 4
打印 上一主題 下一主題

關(guān)于linux的多線程主干問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-04-09 10:48 |只看該作者 |倒序瀏覽
5可用積分
最近在看《UNIX高級環(huán)境編程》,對于進(jìn)程控制,線程控制的內(nèi)容比較迷茫。特別是線程控制,涉及到很多線程的屬性。感覺內(nèi)容又多又雜,在此希望高手指導(dǎo)一下,如何去理解進(jìn)程控制,多線程編程,以及這兩種技術(shù)對于網(wǎng)編編程的重要性。例如并發(fā)服務(wù)器這類的。

論壇徽章:
0
2 [報告]
發(fā)表于 2009-04-09 11:00 |只看該作者
沒啥好說的其實(shí),自己寫個進(jìn)程池,線程池就知道了

PS:可以去看看UNP V1

論壇徽章:
11
技術(shù)圖書徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
3 [報告]
發(fā)表于 2009-04-09 11:23 |只看該作者

回復(fù) #1 linPower 的帖子

在你不了解一種技術(shù)的用途時,學(xué)習(xí)理論一般都會比較迷茫,此時就需要實(shí)踐,比如通過網(wǎng)絡(luò)編程實(shí)踐,可以參考UNPV1
Chapter 30. Client/Server Design Alternatives

Section 30.1.  Introduction

Section 30.2.  TCP Client Alternatives

Section 30.3.  TCP Test Client

Section 30.4.  TCP Iterative Server

Section 30.5.  TCP Concurrent Server, One Child per Client

Section 30.6.  TCP Preforked Server, No Locking Around accept

Section 30.7.  TCP Preforked Server, File Locking Around accept

Section 30.8.  TCP Preforked Server, Thread Locking Around accept

Section 30.9.  TCP Preforked Server, Descriptor Passing

Section 30.10.  TCP Concurrent Server, One Thread per Client

Section 30.11.  TCP Prethreaded Server, per-Thread accept

Section 30.12.  TCP Prethreaded Server, Main Thread accept

Section 30.13.  Summary

論壇徽章:
0
4 [報告]
發(fā)表于 2009-04-09 15:53 |只看該作者

回復(fù) #1 linPower 的帖子

小弟認(rèn)為,能簡單就簡單。別把問題搞復(fù)雜。
比如,樓主大大使用常規(guī)做法,利用線程庫提供的一大堆函數(shù)來完成調(diào)度。
完全沒有必要。
最簡單的做法,用全局?jǐn)?shù)組,分別與每個線程對應(yīng)。
給這個數(shù)以不同含義,通過修改這個數(shù)值,就可以達(dá)到控制線程的目的。
比如:int status[100];//0:start,1:start_recv,2:recv_ing,3:recv_end.4:........
通過這個值的變化,就簡單的控制了每個線程的動作。
這么簡單做的事為什么要搞那么復(fù)雜。
線程同步什么的都可以這么做。注意互斥就行了。
另外,可以使用線程函數(shù)的入口參數(shù),來達(dá)到你要做的目的。
最后,說點(diǎn)題外的,個人覺得不要啟動關(guān)閉線程過于頻繁。最好啟動的線程,通過傳遞參數(shù),來完成相應(yīng)任務(wù)。即使任務(wù)結(jié)束,也不要把線程結(jié)束,可以留待以后新的任務(wù)的到來,繼續(xù)使用該線程。目前看到的Stevens的幾本經(jīng)典書籍的。它的網(wǎng)絡(luò)模型并不好。太過于簡單,來一個連接,為他啟動一個新的線程,或者進(jìn)程。對于資源與效率都是巨大的消耗。完全沒有考慮線程一起一關(guān)的開銷。當(dāng)然,他的做法很經(jīng)典的,對于簡單初級應(yīng)用,絕對沒問題。

小弟現(xiàn)在使用的模型,是使用線程池,即一開始會啟動很多線程,線程組分為不同功能,可以有專門處理接收的線程,也有專門查詢連接狀態(tài)的線程。也有一種說法連接池,應(yīng)該就是這樣吧。
當(dāng)然現(xiàn)在linux2.6的核的epoll效率比select好多了。模型還可以再變,也沒必要復(fù)雜。nginx就是使用epoll實(shí)現(xiàn)了5萬同時在線,效率不降低,看了一下它的核心,也是很簡單。
小弟可能說的有點(diǎn)跑題,說多了,總之,線程調(diào)度,不要想的復(fù)雜了。常規(guī)做法在小弟眼里是復(fù)雜的。
最后,小弟也不是啥牛人,只不過平時都這么做。僅供參考。

論壇徽章:
0
5 [報告]
發(fā)表于 2009-05-07 13:37 |只看該作者
樓上說的有道理
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP