int main(){ kn_thread_t t1 = kn_create_thread(THREAD_JOINABLE); kn_thread_t t2 = kn_create_thread(THREAD_JOINABLE); kn_thread_start_wait(t1,routine11,NULL); kn_thread_start_wait(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(void) { pinMode(LEDPIN,OUTPUT); pinMode(LEDPIN2,OUTPUT); cli(); timer1_init(); serial_open(19200, SERIAL_8N1); init_yield_array(); //int t1 = kn_create_thread(tempHumidity); int t2 = kn_create_thread(blink); int t3 = kn_create_thread(blink_faster); while(1) { //kn_run_thread(t1); kn_run_thread(t2); kn_run_thread(t3); //init_yield_array(); // if (tot_overflow >= 10) { // blink(); // tot_overflow = 0; // } // if (tot_overflow2 >= 15) { // blink_faster(); // tot_overflow2 = 0; // } //kn_run_thread(t1); //kn_run_thread(t2); //kn_run_thread(t3); //prints(" $$$$$$$$ "); //_delay_ms(800); //getTempHumidity(); //prints((uint8_t*)TOTAL_RAM_SIZE); // char buffer[16]; // sprintf(buffer,"%d",(int)TOTAL_RAM_SIZE); // prints(buffer); //kn_create_thread(THREAD1, &threadB, false, NULL); // get_temp(); // _delay_ms(800); } }
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; }