Can any idea help me figure out why the following output is sequential? I'm running this example on a 4 core system. <div>I would expect the output to look random. </div><div><br></div><div><div>import _thread as thread</div>
<div>import time</div><div><br></div><div>class thread_counter(object):</div><div>    def __init__(self, thr_cnt, sleep_int):</div><div>        self.thr_cnt = thr_cnt</div><div>        self.sleep_int = sleep_int </div><div>
<br></div><div>def counter(myId, count):</div><div>    for i in range(count):</div><div>        time.sleep(1)</div><div>        print('[{}] => {}'.format(myId, i))</div><div><br></div><div>def main():</div><div>
    for i in range(5): </div><div>        thread.start_new_thread(counter, (i, 5))</div><div>        time.sleep(6)</div><div>        print('Main thread exiting..')</div><div><br></div><div>if __name__ == '__main__':</div>
<div>    main()</div></div><div><br></div><div><br></div><div><div>[0] => 0</div><div>[0] => 1</div><div>[0] => 2</div><div>[0] => 3</div><div>[0] => 4</div><div>Main thread exiting..</div><div>[1] => 0</div>
<div>[1] => 1</div><div>[1] => 2</div><div>[1] => 3</div><div>[1] => 4</div><div>Main thread exiting..</div><div>[2] => 0</div><div>[2] => 1</div><div>[2] => 2</div><div>[2] => 3</div><div>[2] => 4</div>
<div>Main thread exiting..</div><div>[3] => 0</div><div>[3] => 1</div><div>[3] => 2</div><div>[3] => 3</div><div>[3] => 4</div><div>Main thread exiting..</div><div>[4] => 0</div><div>[4] => 1</div><div>
[4] => 2</div><div>[4] => 3</div><div>[4] => 4</div><div>Main thread exiting..</div></div>