经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
实现多线程的两种传统方式
来源:cnblogs  作者:yaoleilovejava  时间:2018/10/18 9:07:11  对本文有异议

第一种:创建一个类继承Thread类,重写Thread类的run方法,代码如下:

  1. class Thread1 extends Thread {
  2. @Override
  3. public void run() {
  4. while (true) {
  5. try {
  6. Thread.sleep(1000);// 线程睡眠1s
  7. } catch (InterruptedException e) {
  8. // TODO Auto-generated catch block
  9. e.printStackTrace();
  10. }
  11. System.out.println(Thread.currentThread().getName());// 打印当前线程名称
  12. }
  13. }
  14. }
  15. public class Test {
  16. public static void main(String[] args) {
  17. Thread1 thread1 = new Thread1();
  18. thread1.start();//启动线程
  19. }
  20. }

 

第二种方式:创建一个类实现Runable接口,重写Runable接口的run方法,并将该类的对象作为参数传递给Thread类的有参构造方法,代码如下:

  1. class Thread2 implements Runnable{
  2. @Override
  3. public void run() {
  4. while (true) {
  5. try {
  6. Thread.sleep(1000);// 线程睡眠1s
  7. } catch (InterruptedException e) {
  8. // TODO Auto-generated catch block
  9. e.printStackTrace();
  10. }
  11. System.out.println(Thread.currentThread().getName());// 打印当前线程名称
  12. }}
  13. }
  14. public class Test {
  15. public static void main(String[] args) {
  16. Thread thread = new Thread(new Thread2());
  17. thread.start();//启动线程
  18. }
  19. }

 

两种方式的区别:如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。

实现Runnable接口比继承Thread类所具有的优势:

1):适合多个相同的程序代码的线程去处理同一个资源

2):可以避免java中的单继承的限制

3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立

注意:main方法其实也是一个线程。在java中所有的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。

java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个jvm,每一个jvm实际上就是在操作系统中启动了一个进程。

 

     

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号