demo.c 1.2 KB
Newer Older
Y
yangfasheng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
/*
	此demo用于演示动态线程创建
 */
#include <rtthread.h>
#include "board.h"

#ifdef RT_USING_FINSH
#include <finsh.h>
#include <shell.h>
#endif


static	rt_thread_t tid1 = RT_NULL;
static	rt_thread_t tid2 = RT_NULL;


static void thread1_entry(void* parameter)
{
    rt_uint32_t count = 0;

    rt_kprintf("thread1 dynamicly created ok\n");
    while (1)
    {
        rt_kprintf("thread1 count: %d\n",count++);
        rt_thread_delay(RT_TICK_PER_SECOND); 
    }
}
						
static void thread2_entry(void* parameter)
{		
		rt_uint32_t count = 0;
    rt_kprintf("thread2 dynamicly created ok\n");
	  
		while(1)
    {
				if(count == 3)
					break;
        rt_kprintf("thread2 count: %d\n",count++);
        rt_thread_delay(RT_TICK_PER_SECOND);   
			
    }
    rt_thread_delay(RT_TICK_PER_SECOND * 4);  
    
    rt_thread_delete(tid1);							
    rt_kprintf("thread1 deleted ok\n");
}


int demo_init(void)
{
				
    tid1 = rt_thread_create("thread1",
				thread1_entry,
				RT_NULL,
				512, 6, 10);
	
    if (tid1 != RT_NULL)
        rt_thread_startup(tid1);        

    tid2 = rt_thread_create("thread2",
        thread2_entry, 
				RT_NULL,
        512, 6, 10);
		
    if (tid2 != RT_NULL)
        rt_thread_startup(tid2);

    return 0;
}