
并发/网络编程
小爷毛毛(卓寿杰)
NLP对话问答、大模型、AIGC。
微信视频号:毛毛AIGC,欢迎关注进一步交流!
展开
-
Java NIO 实现 EchoServer EchoClient
阻塞模式EchoServer采用阻塞模式,用线程池中的工作线程处理每个客户连接。 EchoClient也采用阻塞模式,单线程。serverpackage com.test.socket.nio.echo;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java原创 2016-12-21 18:50:49 · 2856 阅读 · 1 评论 -
clients(PV操作共享内核内存进行输入输出分屏) - server(进程间通信)模型实现
1、拓扑结构 2、PV操作共享内核内存进行输入输出分屏 (1) 1 int semop(int semid,struct sembuf *sops,size_t nsops); 功能描述 操作一个或一组信号。 semid: 信号集的识别码,可通过semget获取。 sops: 指向存储信号操作结构的数组指针,信号操作结构的原原创 2016-06-13 10:00:20 · 761 阅读 · 0 评论 -
父子进程间通信模型实现(popen)
0、FILE *popen(const char *command, const char *type); popen 函数相当于做了以下几件事: 1、创建一个无名管道文件 2、 fork() 3、在子进程里, exec command 4、 在子进程里, 若 type == “r” , 相当于进行: int fd_new = fopen("Pipe_Name",O_WRON原创 2016-06-13 10:00:15 · 1422 阅读 · 0 评论 -
1 server - n clients 模型实现(select)
拓扑结构: 各个客户端创建读写管道,通过“上下线信息管道”向服务器发送上下线信息和读写管道名称。服务器接受信息,修改链表(存储客户端信息)。客户端、服务器打开读写管道,服务器通过“W”管道接收从客户端发来的信息,在根据链表同个其他各个“R”管道向其他客户端发送信息。 具体流程: 1、建立上下线信息管道 服务器: 1 mkfifo(path_name, 0666);/原创 2016-06-13 10:00:11 · 480 阅读 · 0 评论 -
select 函数实现 三种拓扑结构 n个客户端的异步通信 (完全图+线性链表+无环图)
一、这里只介绍简单的三个客户端异步通信(完全图拓扑结构) 1 1 //建立管道 2 2 mkfifo 12 13 21 23 31 32 open顺序: cl1 读 , cl2 cl3 向 cl1写 cl2 读 , cl1 cl3 向 cl2写 cl3 读 , cl1 cl2 向 cl3写 顺序的规律就是 第i个 客户端读 其他各个客户端原创 2016-06-13 09:57:30 · 1001 阅读 · 0 评论 -
轻量级文本搜索引擎的后台设计、实现与优化
转载请注明:转载 from http://blog.youkuaiyun.com/u011239443/article/details/51655480主框架图见:http://r.photo.store.qq.com/psb?/V12VvuOZ2vxbmG/M2gzPWfnBLS8buBT*16Y2xm9QkAAp8TmePOlIPC1MlM!/r/dFMAAAAAAAAA 1.1 生成库——词频库、词语索...原创 2016-06-13 10:05:56 · 5431 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
http://blog.youkuaiyun.com/whuslei/article/details/6667471/建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。 【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下:首先Client端发送转载 2017-03-22 14:45:38 · 661 阅读 · 0 评论 -
Java 线程池 ThreadPoolExecutor 源码分析
转载请注明本文出自 clevergump 的博客:http://blog.youkuaiyun.com/clevergump/article/details/50688008, 谢谢!线程池能够对线程进行有效的管理, 复用和数量上限的限制, 如果你需要创建多个线程来执行多个异步任务, 那么使用线程池显然要比频繁地 new Thread().start() 这种方式要好.Java 中的线程池是用 ThreadPo转载 2017-03-09 17:05:00 · 475 阅读 · 0 评论 -
1 producer — n consumers 模型 实现
1 #include 2 #includestring.h> 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LEN 128 9 typedef struct task_que 10 { 11 queuechar*> string原创 2016-06-13 10:05:48 · 536 阅读 · 0 评论