3、小結(jié)
由以上例子可以看出,ACL庫屏蔽底層SOCKET的細(xì)節(jié)操作,使網(wǎng)絡(luò)編程變得簡單,使使用者可以專心于其應(yīng)用,而不是拘泥于SOCKET操作上,另外結(jié)合半駐留線程池的ACL庫就可以開發(fā)高效的并發(fā)網(wǎng)絡(luò)應(yīng)用來。
當(dāng)然,以上例子也存在一個缺點,那就是當(dāng)客戶端并發(fā)連接比較高時,因為一個連接占用一個線程,所以高并發(fā)時就需要更多的線程(為了啟動更多的線程,可以通過 acl_pthread_pool_set_stacksize 或 acl_pthread_pool_attr_set_stacksize 設(shè)置每個線程的堆棧為較小的值,如 500KB);而采用ACL庫里的另一種編程技術(shù)--非阻塞式IO,可以使一個線程同時處理多個并發(fā)TCP連接,同時可以啟動多個這樣的非阻塞線程,從而可以更好地利用多核(一般是一個核可以啟用一個非阻塞IO線程),將來,我們將會對此類問題進(jìn)行討論,并給出具體實例。
相關(guān)推薦:
2010年9月計算機等級考試精華備考資料匯總 計算機等級考試二級VB上機試題及答案匯總
計算機等級考試二級VB模擬試題及答案匯總