轻量级协程,使用单线程用setjump与longjump来实现状态转移,快速,安全。

1.初始化

2.创建线程
   线程函数通过st提供的io实现
 
 
 
上下文切换
虚拟处理器
idle thread
信号转换为io事件
EDSM
 
一个线程模拟多线程
 
 
//打开udp
if ((nfd = st_netfd_open_socket(s)) == NULL) {
    h_errno = NETDB_INTERNAL;
    n = errno;
    close(s);
    errno = n;
    return -1;
  }
 
//发送udp
st_sendto(nfd, buf, len, (struct sockaddr *)&(_res.nsaddr_list[i]),
                  sizeof(struct sockaddr), timeout) != len)
 
 
//接收udp
 do {
      len = st_recvfrom(nfd, buf, blen, NULL, NULL, timeout);
      if (len <= 0)
        break;
    } while (id != hp->id);