- 主题:用createThread()创造出来的多线程是怎么被编译的
一个简单的正常的C程序是一句一句把程序从头到尾执行的。
但是一个多线程的C程序当中可以建立许多个线程,这些线程
是怎么被编译器编译的,难道编译器会自动把这几个线程识别
出来然后一起放到while循环里吗?编译器自己在C程序里插入
个while循环吗?
--
FROM 120.6.44.*
如果是普通的函数调用的话,那么需要等待这个函数调用执行到彻底完毕才能从这个函数返回吧。
但是实际上,多个线程都是每个线程执行了几步就暂时退出轮到下一个线程来执行一会儿,不是
普通的函数调用吧
【 在 BigCarrot 的大作中提到: 】
: 对于编译器来说就是一个普通的函数调用,它不知道这个函数会创建一个线程
:
--
FROM 120.6.44.*
把每个线程需要对应的函数地址填入中断描述符表idt,然后就等着OS去调度,那么又如何做到一旦主线程结束退出,
紧接着在程序里被创建的线程们也被强迫马上退出,即使被创建的线程还没有计算完毕,这又是怎么做到的?
--
FROM 120.6.44.*