上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 81 下一页
摘要: 在前面的章节中介绍了两种允许无关进程共享内存区域以便执行 IPC 的技术: System V共享内存(第 48 章)和共享文件映射(49.4.2 节)。这两种技术都存在一些不足。 1.System V 共享内存模型使用的是键和标识符,这与标准的 UNIX I/O 模型使用文件名和描述符的做法是不一致 阅读全文
posted @ 2021-06-08 19:22 Mars.wang 阅读(134) 评论(0) 推荐(0)
摘要: POSIX.1b 实时扩展定义了一组 IPC 机制,它们与在第 45 章到第 48 章章中介绍的System V IPC 机制类似。这些 IPC 机制被统称为 POSIX IPC。这三种 POSIX IPC机制具体如下。 1.消息队列可以用来在进程间传递消息。与 System V 消息队列一样,消息 阅读全文
posted @ 2021-06-08 18:46 Mars.wang 阅读(146) 评论(0) 推荐(1)
摘要: 63.3 信号驱动 I/O 在 I/O 多路复用中,进程是通过系统调用( select()或 poll())来检查文件描述符上是否可以执行 I/O 操作。而在信号驱动 I/O 中,当文件描述符上可执行 I/O 操作时,进程请求内核为自己发送一个信号。之后进程就可以执行任何其他任务直到 I/O 就绪为 阅读全文
posted @ 2021-06-08 13:55 Mars.wang 阅读(130) 评论(0) 推荐(0)
摘要: 63.2 I/O 多路复用 I/O 多路复用允许我们同时检查多个文件描述符,看其中任意一个是否可执行 I/O 操作。我们可以采用两个功能几乎相同的系统调用来执行 I/O 多路复用操作。第一个是 select(),它首次出现在 BSD 系统的套接字 API 中。在这两个系统调用中,历史上 select 阅读全文
posted @ 2021-06-08 13:48 Mars.wang 阅读(91) 评论(0) 推荐(0)
摘要: 23.6 POSIX 间隔式定时器 使用 setitimer()来设置经典 UNIX 间隔式定时器,会受到如下制约。 1.针对 ITIMER_REAL、 ITIMER_VIRTUAL 和 ITIMER_PROF 这 3 类定时器,每种只能设置一个。 2.只能通过发送信号的方式来通知定时器到期。另外, 阅读全文
posted @ 2021-06-01 14:27 Mars.wang 阅读(348) 评论(0) 推荐(0)
摘要: 23.5 POSIX 时钟 POSIX 时钟所提供的时钟访问 API 可以支持纳秒级的时间精度,其中表示纳秒级时间值的 timespec 结构同样也用于 nanosleep()( 23.4.2 节)调用。 Linux 中,调用此 API 的程序必须以-lrt 选项进行编译,从而与 librt(rea 阅读全文
posted @ 2021-06-01 14:08 Mars.wang 阅读(272) 评论(0) 推荐(0)
摘要: 程序可能会关注两种时间类型。 1.真实时间:度量这一时间的起点有二:一为某个标准点;二为进程生命周期内的某个固定时点(通常为程序启动)。前者为日历( calendar)时间,适用于需要对数据库记录或文件打上时间戳的程序;后者则称之为流逝( elapsed)时间或挂钟( wall clock)时间,主 阅读全文
posted @ 2021-06-01 11:18 Mars.wang 阅读(121) 评论(0) 推荐(0)
摘要: 63.4 epoll 编程接口 同 I/O 多路复用和信号驱动 I/O 一样, Linux 的 epoll( event poll) API 可以检查多个文件描述符上的 I/O 就绪状态。 epoll API 的主要优点如下。 1.当检查大量的文件描述符时, epoll 的性能延展性比 select 阅读全文
posted @ 2021-05-31 15:40 Mars.wang 阅读(54) 评论(0) 推荐(0)
摘要: 前面使用netty实现了http服务器,已经可以从浏览器进行访问,其实netty也可以实现http客户端,来访问netty实现的http服务器 一、httpclient public class HttpClient { public void connect(String host, int po 阅读全文
posted @ 2021-05-31 13:55 Mars.wang 阅读(407) 评论(0) 推荐(0)
摘要: 通过netty可以实现一个简单的http服务器 一、httpserver接受请求 public class HttpServer { public static void main(String[] args) throws Exception { HttpServer server = new H 阅读全文
posted @ 2021-05-31 11:48 Mars.wang 阅读(111) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 81 下一页