int main(){ kn_thread_t t1 = kn_create_thread(THREAD_JOINABLE); kn_thread_t t2 = kn_create_thread(THREAD_JOINABLE); kn_thread_start_run(t1,routine11,NULL); kn_thread_start_run(t2,routine22,NULL); while(1){ kn_sleepms(1000); } return 0; }
int main(){ kn_thread_t t1 = kn_create_thread(THREAD_JOINABLE); kn_thread_t t2 = kn_create_thread(THREAD_JOINABLE); //kn_thread_t t3 = kn_create_thread(THREAD_JOINABLE); channel1 = kn_new_channel(kn_thread_getid(t1)); channel2 = kn_new_channel(kn_thread_getid(t2)); kn_thread_start_run(t1,routine1,NULL); kn_thread_start_run(t2,routine2,NULL); //kn_thread_start_run(t3,routine2,NULL); while(1){ kn_sleepms(100); } return 0; }
int main(){ MYSQL *mysql = mysql_init(NULL); if (!mysql) return 0; if (!mysql_real_connect(mysql,ip,usrname,passwd,db,port,NULL,0)){ int ret = mysql_errno(mysql); printf("connect mysql error host: %s user %s passwd: %s ret: %d\n",ip,usrname,passwd,ret); mysql_close(mysql); return 0; } mysqlConn = calloc(1,sizeof(*mysqlConn)); mysqlConn->mysqlConn = mysql; mysqlConn->engine = kn_new_engine(); mysqlConn->thd = kn_create_thread(THREAD_JOINABLE); kn_thread_start_run(mysqlConn->thd,mysql_worker,(void*)mysqlConn); engine_t engine = kn_new_engine(); handle_t h = kn_new_chrdev(0); if(!h) return 0; kn_chrdev_associate(h,engine,chr_transfer_finish,NULL); st_io io; io.next.next = NULL; struct iovec wbuf[1]; char buf[4096]; wbuf[0].iov_base = buf; wbuf[0].iov_len = 4096; io.iovec_count = 1; io.iovec = wbuf; kn_chrdev_read(h,&io); kn_engine_run(engine); return 0; }
void kn_thread_run(kn_thread_routine r,void *arg) { struct kn_thread_arg *_thread_arg = malloc(sizeof(*_thread_arg)); _thread_arg->custom_routine = r; _thread_arg->custom_arg = arg; _thread_arg->_thread = kn_create_thread(0);//not joinable kn_thread_start_run(_thread_arg->_thread,routine,_thread_arg); }
int main(){ msgque = kn_new_msgque(32); kn_thread_t t1 = kn_create_thread(THREAD_JOINABLE); kn_thread_t t2 = kn_create_thread(THREAD_JOINABLE); kn_thread_start_run(t1,routine1,NULL); kn_thread_start_run(t2,routine2,NULL); uint64_t tick,now; tick = now = kn_systemms64(); while(1){ kn_sleepms(100); now = kn_systemms64(); if(now - tick > 1000) { uint32_t elapse = (uint32_t)(now-tick); printf("count:%d\n",count/elapse*1000); tick = now; count = 0; } } return 0; }