Coroutines not in parallel

Can anyone help, I’m a little confused over co-routines.

If I set some going in a behaviour Start() call line this:-

	void Start ()
	{
		StartCoroutine(BuildHeightMaps_01());
		StartCoroutine(BuildHeightMaps_02());
	}

	IEnumerator BuildHeightMaps_01()
	{
		Debug.Log("Start Height maps 01: " + Time.realtimeSinceStartup.ToString());
		for (int i = 0; i < 500000; i++)
		{
		}
		Debug.Log("End Height maps 01: " + Time.realtimeSinceStartup.ToString());

		yield return null;
	}

	IEnumerator BuildHeightMaps_02()
	{
		Debug.Log("Start Height maps 02: " + Time.realtimeSinceStartup.ToString());
		for (int i = 0; i < 5000000; i++)
		{
		}
		Debug.Log("End Height maps 02: " + Time.realtimeSinceStartup.ToString());

		yield return null;
	}

}

I get a slow concurrent feedback, like this.

Start Height maps 01: 0.02582638
End Height maps 01: 0.03087785
Start Height maps 02: 0.03390504
End Height maps 02: 0.04367269

I thought they were meant to be using threads?
Do I have to call them when the frames are starting, how do I get these in parallel?

Thanks.
Dave.

From my memory I believe Coroutines do not run in parallel with your code … same thread as everything else in your scripts

By using threading. Coroutines aren’t threaded.

Of course, I must have been confused with the ‘yield’ statement, thanks for the advice guys.
It works now, and I had already removed the API calls so there wasn’t much else to do.