本人一介菜鸟, 如有问题, 望能赐教, 不胜感激!!!QQ:773839970 注明:海阔天空
线程创建由两种方法,具体可参见《线程的创建》这篇文章
在这两种方法中,推荐采用实现接口Runnable()的方法,因为子类若继承Thread()则不能继承其他类,而另一方面,子类可以实现多个接口,同时继承某一类。
在下面测试代码,还是用子类继承Thread的方法
现在谈谈sleep,join,yield方法
1. sleep()
sleep()为一静态方法
测试代码:
运行结果:
Smith:1
Tom:1
Smith:2
Tom:2
Tom:3
Smith:3
Smith:4
Tom:4
Tom:5
Smith:5
Tom:6
Smith:6
解释:每三秒打印一组数据,
Sleep()为一静态方法,不需要实例即可调用,但是要处理InterruptedException异常
2. join()
测试代码:
运行结果:
I amabcdef
I amabcdef
I amabcdef
Main Thread
Main Thread
Main Thread
Main Thread
可以看出,thread线程运行完后,主线程才开始运行,这就是join()方法的用途,不过还是要处理InterruptException异常
3. yield()
测试代码:
运行结果:
Tom:70
Smith:38
Smith:39
Smith:40
Tom:71
解释:每到10的整数倍时,暂停该线程,执行其他线程,暂停并不表示永远不进行,下一时刻,被暂停的线程仍有可能被选中执行。