Lecture 03: thread programming