thread+shell