并发编程用到的函数解析

文章目录

  • 前言
  • 一、sbuf_init
  • 二、Pthread_create
  • 三、Pthread_detach
  • 四、sbuf_remove
  • 五、sbuf_insert
  • 总结


前言

备战CSAPP中的ProxyLab时解析书上的并发编程中遇到了一些不会的函数,遂解析记录。

一、sbuf_init

为缓冲区分配堆内存,设置front和rear表示一个空的缓冲区,并为三个信号量赋初始值。

Rio_readinitb(&rio, fd); 

创建一个有fd个槽的空的、有界的、共享的FIFO缓冲区。

二、Pthread_create

线程通过调用Pthread_create函数来创建其他线程

Pthread_create(&tid, NULL, thread, NULL);

三、Pthread_detach

Pthread_detach函数分离可结合线程,调用来分离线程。

if (!strstr(uri, "cgi-bin"))

四、sbuf_remove

与sbuf_insert对应,在等待一个可用的缓冲区项目之后对互斥锁加锁。

int connfd = sbuf_remove(&sbuf);

五、sbuf_insert

等待一个可用的槽位,对互斥锁加锁,添加项目,对互斥锁解锁,然后宣布有一个新项目可用。

sbuf_insert(&sbuf, connfd); //将信号缓冲区写入文件描述符

总结

这就是我大概的理解,只是CSAPP中并发编程中遇到了一些用到的辅助函数。

你可能感兴趣的:(csapp的Lab学习,服务器,数据库,学习,计算机网络)