摘要: 参照PHP7的HashTable实现思路写一个精简版,加深对hashtable数据结构的理解。 PHP7 HashTable数据结构: 详细分析参见:PHP7 HashTable源码分析 代码实现: 1.基本数据结构 2.功能清单 3.源码 #include <stdio.h> #include < 阅读全文
posted @ 2019-04-09 12:08 zerofl-diary 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 任务: 实现一个TCP server的回声服务器,功能是将客户端发送的消息原样返回,应用epoll处理事件循环实现IO多路复用。借此任务理解IO多路复用应用的开发模式。 参考资料: http://man7.org/linux/man-pages/man2/epoll_create1.2.html h 阅读全文
posted @ 2019-03-29 16:51 zerofl-diary 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目: 有一个超级大的int数组要求和,假设有100W,写一个php脚本, 根据当前机器(假设是多核的)cpu的核数,fork出这么多子进程,把数组平分,每个子进程计算其中一部分,并把结果保存到/tmp/子进程pid.txt. 最后父进程汇总并输出求各结果. 思路分析: 使用pcntl扩展提供的pc 阅读全文
posted @ 2019-03-27 10:34 zerofl-diary 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 问题:一个很大的数据文件,单节点可用内存有限,使用多节点实现文件数据排序。 思路: 1.一个主节点负责将文件分块,如果分3块,则开3个goroutine分别读取文件的一部分,交给一个外部节点独立排序; 2.每个外部节点接收数据并排序,将排序结果传回主节点; 3.主节点从每个外部节点接收一个数据构建最 阅读全文
posted @ 2019-03-20 13:10 zerofl-diary 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 上一篇进程间通信:共享内存没有实现互斥锁保护,今天用信号量实现一个进程间互斥锁,保护共享变量的修改。 参考资料: http://man7.org/linux/man-pages/man7/sem_overview.7.html http://man7.org/linux/man-pages/man3 阅读全文
posted @ 2019-03-15 17:09 zerofl-diary 阅读(7314) 评论(1) 推荐(1) 编辑
摘要: 执行效果: 阅读全文
posted @ 2019-03-12 15:05 zerofl-diary 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 任务:实现一个类bash的管道符功能程序,可以通过特殊符号例如‘@’将第一个程序的输出作为第二个程序的输入。 大体思路: 1. 主进程创建一个管道,得到一对读写fd[2],其中fd[0]用于读,fd[1]用于写。 2. fork子进程1,通过dup2将子进程的标准输出改为fd[1],然后通过exec 阅读全文
posted @ 2019-03-08 14:59 zerofl-diary 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 任务:主进程打开一段共享内存,fork出8个子进程分别将共享内存map到各自虚拟地址空间中,每个子进程都需要将共享内存中的一个数值加一。 参考文档: http://man7.org/linux/man-pages/man3/shm_open.3.htmlhttp://man7.org/linux/m 阅读全文
posted @ 2019-03-08 14:41 zerofl-diary 阅读(599) 评论(0) 推荐(0) 编辑
摘要: ex8.2:要求实现一个ftp服务器,支持cd,ls,put,get等命令,目前实现了用户身份简单确认,获取家目录后可以进行cd,ls,mkdir以及上传和下载文件。 TODO: 1)未实现输入密码时不回显(类似C里的getpass函数); 2)不支持文件夹的上传与下载; 3)未实现与linux用户 阅读全文
posted @ 2019-03-05 12:15 zerofl-diary 阅读(629) 评论(1) 推荐(0) 编辑
摘要: ex4.10 package main import ( "flag" "fmt" "log" "os" "time" "gopl.io/ch4/github" ) var m = flag.Int("m", 0, "positive: query issues created during rec 阅读全文
posted @ 2019-02-22 17:21 zerofl-diary 阅读(521) 评论(0) 推荐(0) 编辑