|
发表于 2011-3-22 12:01:48
|
显示全部楼层
这个估计是比较早期的文档,这个代码,你可以看svn上最新的:
http://rt-thread.googlecode.com/svn/trunk/examples/kernel/thread_dynamic_simple.c
其中不同的:
int thread_dynamic_simple_init()
{
/* 创建线程1 */
tid1 = rt_thread_create("t1",
thread_entry, (void*)1, /* 线程入口是thread_entry, 入口参数是1 */
THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
if (tid1 != RT_NULL)
rt_thread_startup(tid1);
else
tc_stat(TC_STAT_END | TC_STAT_FAILED);
/* 创建线程2 */
tid2 = rt_thread_create("t2",
thread_entry, (void*)2, /* 线程入口是thread_entry, 入口参数是2 */
THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
if (tid2 != RT_NULL)
rt_thread_startup(tid2);
else
tc_stat(TC_STAT_END | TC_STAT_FAILED);
return 0;
}
即,它们的入口参数是不同的。但是最关键的是,rt_thread_create会动态创建一个线程控制块和栈,这两个线程的是完全不同的物理内存地址。 |
|