程序
/*demo
./example_thread 1
*/
#include "co_routine.h"
#include "co_routine_inner.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <pthread.h>
#include <unistd.h>
int loop(void *)
{
return 0;
}
static void *routine_func( void * )
{
stCoEpoll_t * ev = co_get_epoll_ct(); //ct = current thread,获取(当前线程中)协程环境中的epoll实例
co_eventloop( ev,loop,0 );
return 0;
}
int main(int argc,char *argv[])
{
int cnt = atoi( argv[1] );//ascii to int,在stdlib.h中
pthread_t tid[ cnt ];//创建cnt个线程变量
for(int i=0;i<cnt;i++)
{
pthread_create( tid + i,NULL,routine_func,0);//创建线程
}
for(;;) //死循环,为了让线程一直运行?
{
sleep(1);
}
return 0;
}
主要的数据结构
stCoEpoll_t事件循环结构体
struct stCoEpoll_t
{
int iEpollFd; //epoll文件号,跟co_poll搭配(见后面的讲解)ÿ