会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
My Fairy's Diary!
博客园
首页
新随笔
联系
订阅
管理
2019年4月9日
动手实践PHP7的HashTable
摘要: 参照PHP7的HashTable实现思路写一个精简版,加深对hashtable数据结构的理解。 PHP7 HashTable数据结构: 详细分析参见:PHP7 HashTable源码分析 代码实现: 1.基本数据结构 2.功能清单 3.源码 #include <stdio.h> #include <
阅读全文
posted @ 2019-04-09 12:08 zerofl-diary
阅读(307)
评论(0)
推荐(0)
2019年3月29日
基于epoll实现一个IO多路复用的回声服务器
摘要: 任务: 实现一个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
阅读(324)
评论(0)
推荐(0)
2019年3月27日
PHP练习题:进程
摘要: 题目: 有一个超级大的int数组要求和,假设有100W,写一个php脚本, 根据当前机器(假设是多核的)cpu的核数,fork出这么多子进程,把数组平分,每个子进程计算其中一部分,并把结果保存到/tmp/子进程pid.txt. 最后父进程汇总并输出求各结果. 思路分析: 使用pcntl扩展提供的pc
阅读全文
posted @ 2019-03-27 10:34 zerofl-diary
阅读(198)
评论(0)
推荐(0)
2019年3月20日
Go语言练习:基于最小堆的外部排序
摘要: 问题:一个很大的数据文件,单节点可用内存有限,使用多节点实现文件数据排序。 思路: 1.一个主节点负责将文件分块,如果分3块,则开3个goroutine分别读取文件的一部分,交给一个外部节点独立排序; 2.每个外部节点接收数据并排序,将排序结果传回主节点; 3.主节点从每个外部节点接收一个数据构建最
阅读全文
posted @ 2019-03-20 13:10 zerofl-diary
阅读(957)
评论(0)
推荐(0)
2019年3月15日
进程间通信:共享内存+互斥锁
摘要: 上一篇进程间通信:共享内存没有实现互斥锁保护,今天用信号量实现一个进程间互斥锁,保护共享变量的修改。 参考资料: 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
阅读(7728)
评论(1)
推荐(1)
2019年3月12日
Go程序设计语言练习题-第9章(9.4-9.5)
摘要: 执行效果:
阅读全文
posted @ 2019-03-12 15:05 zerofl-diary
阅读(515)
评论(0)
推荐(0)
2019年3月8日
进程间通信:管道
摘要: 任务:实现一个类bash的管道符功能程序,可以通过特殊符号例如‘@’将第一个程序的输出作为第二个程序的输入。 大体思路: 1. 主进程创建一个管道,得到一对读写fd[2],其中fd[0]用于读,fd[1]用于写。 2. fork子进程1,通过dup2将子进程的标准输出改为fd[1],然后通过exec
阅读全文
posted @ 2019-03-08 14:59 zerofl-diary
阅读(285)
评论(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
阅读(623)
评论(0)
推荐(0)
2019年3月5日
Go程序设计语言练习题-第8章(8.2)
摘要: 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
阅读(652)
评论(1)
推荐(0)
2019年2月22日
Go程序设计语言练习题-第4章(4.10-4.13)
摘要: 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
阅读(529)
评论(0)
推荐(0)
下一页
公告