在C / C ++中产生线程的跨平台方式?

在C和C ++中是否有一种产生线程的跨平台方式? 像sched_yield()或Sleep(0)之类的东西? SDL_Delay(0)总是会产生或在某些实现中立即返回吗?

鉴于C和C ++(直到C ++ 98)都没有“线程”,线程没有完全跨平台的方式来产生。

在C ++ 0x中,有一个函数std::this_thread::yield()可以被调用以产生。 一旦人们开始使用C ++ 0x线程库,那将是线程产生的可移植方式。

在c ++的情况下, boost::thread::yield()可以满足您的要求。 在具有posix线程的平台上, pthread_yield()为C和与之链接的任何内容执行相同的function。 在没有立即停止线程并启动另一个线程的平台上,这是因为调度程序不支持该function。 我认为很多这样的平台实际上并不存在。