版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1基于多核编程案例分析基于多核编程案例分析第1页/共35页可以从课程网站上下载源代码第2页/共35页using System.Net.Sockets; /namespaceTcpListener listener = new TcpListener(portNum);listener.Start();TcpClient handler = listener.AcceptTcpClient();int i = ClientSockets.Add ( new ClientHandler(handler) ) ; (ClientHandler) ClientSocketsi).Start()
2、;客户端Socket处理线程客户端连接实例集监听线程回收线程为每个已经接收的连接产生一个线程TCP客户端请求垃圾线程将被回收允许TCP服务接收客户端的连接请求。分别为每个请求产生一个线程实例。并启动。第3页/共35页private static ArrayList ClientSockets ;lock ( ClientSockets.SyncRoot ) int i = ClientSockets.Add ( new ClientHandler(handler) ) ; (ClientHandler) ClientSocketsi).Start() ;线程同步第4页/共35页第5页/共35页
3、ThreadReclaim = new Thread( new ThreadStart(Reclaim) );ThreadReclaim.Start() ;private static void Reclaim() while (ContinueReclaim) lock( ClientSockets.SyncRoot ) for ( int x = ClientSockets.Count-1 ; x = 0 ; x- ) Object Client = ClientSocketsx ; if ( !( ( ClientHandler ) Client ).Alive ) ClientSock
4、ets.Remove( Client ) ; Console.WriteLine(A client left) ; Thread.Sleep(200) ; 第6页/共35页ContinueReclaim = false ; ThreadReclaim.Join() ; foreach ( Object Client in ClientSockets ) ( (ClientHandler) Client ).Stop() ; 第7页/共35页第8页/共35页 / Schedule task again if ( SharedStateObj.ContinueProcess & !bQui
5、t ) ThreadPool.QueueUserWorkItem(new WaitCallback(this.Process), SharedStateObj);else networkStream.Close(); ClientSocket.Close(); / Deduct no. of clients by one Interlocked.Decrement(ref SharedStateObj.NumberOfClients ); Console.WriteLine(A client left, number of connections is 0, SharedStateObj.Nu
6、mberOfClients) ; / Signal main process if this is the last client connections / main thread requested to stop.if ( !SharedStateObj.ContinueProcess & SharedStateObj.NumberOfClients = 0 ) SharedStateObj.Ev.Set();第9页/共35页任务处理任务处理任务处理FIFO队列结构客户端请求任务监听线程当客户端请求到达,将请求放到队列中。class ClientConnectionPool /
7、Creates a synchronized wrapper around the Queue. private Queue SyncdQ = Queue.Synchronized( new Queue() );第10页/共35页class ClientService const int NUM_OF_THREAD = 10; private ClientConnectionPool ConnectionPool ; private bool ContinueProcess = false ; private Thread ThreadTask = new ThreadNUM_OF_THREA
8、D ; public ClientService(ClientConnectionPool ConnectionPool) this .ConnectionPool = ConnectionPool ; public void Start() ContinueProcess = true ; / Start threads to handle Client Task for ( int i = 0 ; i 0 ) client = ConnectionPool.Dequeue() ; if ( client != null ) client.Process() ; / Provoke clie
9、nt / if client still connect, schedufor later processingle it if ( client.Alive ) ConnectionPool.Enqueue(client) ; Thread.Sleep(100) ; 第11页/共35页第12页/共35页第13页/共35页第14页/共35页第15页/共35页第16页/共35页第17页/共35页第18页/共35页第19页/共35页服务器端程序界面第20页/共35页第21页/共35页 主线程:管理程序状态 数据包包头重新封装。(传输速度会受影响,但是质量得到了保证。否则在传图片时会出现缺失、移位等
10、现象) 任务线程: 发送线程 接收线程 显示进度条的线程 采用临界段进行同步处理第22页/共35页CTCPClient_CE:CTCPClient_CE() /初始化socket环境 WSADATA wsd; WSAStartup(MAKEWORD(1,1),&wsd); /创建线程退出事件句柄 m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL); m_bRec = true;第23页/共35页/*-【函数介绍】: 用于打开客户端socket【入口参数】: pWnd用于指定父窗口句柄【出口参数】: (无)【返回 值】: TRUE
11、:打开成功;FALSE:打开失败-*/BOOL CTCPClient_CE:Open(CWnd * pWnd) /复位线程退出事件 ResetEvent(m_exitThreadEvent); /存储父窗口句柄 m_pOwnerWnd = pWnd; /创建TCP套接字 m_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(m_socket = SOCKET_ERROR);return FALSE; /创建通讯线程 m_tcpThreadHandle = CreateThread(NULL,0,SocketThreadFunc,this,0,NULL); if (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026西安未央汉城医院招聘考试备考题库及答案解析
- 2026浙江温州市洞头区海霞文化发展中心第二期招聘笔试备考题库及答案解析
- 2026四川乐山市沐川县招聘城镇公益性岗位1人考试备考题库及答案解析
- 2026中国东航空保管理部校园招聘考试备考题库及答案解析
- 四川电信实业集团有限责任公司下属事业单位2026年上半年公开招聘工作人员补充笔试模拟试题及答案解析
- 2026四川成都市武侯区望江路社区卫生服务中心招聘1人笔试模拟试题及答案解析
- 2026年四川省内江市隆昌市全国普通高中初三二月大联考英语试题含解析
- 2026年江苏省南京玄武区重点中学初三模拟测试英语试题含解析含解析
- 山东省青岛育才中学2026届初三5月阶段性考试语文试题含解析
- 清洁能源技术运用保证承诺书4篇
- 郑州大学高层次人才考核工作实施办法
- 土壤氡浓度检测方案
- 2024年中国农业大学招聘笔试真题
- DBJT13-366-2021 建筑工程附着式升降脚手架应用技术标准
- 麻醉科应急预案及流程
- 上海市第一至十八届高一物理基础知识竞赛试题及答案
- DB3303T 031-2021 民营经济健康发展评价指标体系
- 《皮肤性病学4》课程标准
- 动火作业方案及安全措施
- 财务管理实习报告范文
- 水运港口专题知识讲座
评论
0/150
提交评论