`
李瑞辉++
  • 浏览: 19707 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

多线程 小结

 
阅读更多

一.            介绍

每个java程序都至少有一个 主线程.当一个java程序启动时,JVM会创建主线程,并在该线程中调用程序的main ()方法。线程可以理解为“程序内部一个独立的运行的单位”;以前我们写的程序也是一个线程,不过只是单线程,只能同时干一件事,所以当我们要处理很多数据时,程序的运行时间让人头大,特别是那个文件搜索,如果一个一个系统盘的找,那实在是慢的可以,单线程程序的运行是线性的,只能一步接一步处理数据,对于这样的需要处理大量数据的程序,多线程无疑是绝佳的选择。稍微解释一下,多线程就是在一个应用程序运行时,会有多个线程在执行,可以完成的是同一件事,也可以是多件事,就好像我们在玩电脑、聊QQ时,既可以聊天,也可以踩空间等等,如果是单线程,估计没事会玩QQ了。

二.            线程与进程

1.      每一个应用程序就是一个进程,而一个进程可以包含多个线程

2.      两个进程之间的内部数据和状态是完全独立的,而同一个进程中的多个线程是共享一块内存空间和一组系统资源的,在程序的内部可以相互调用;而大部分的进程之间必须通过网络实现

3.      线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程之间的切换比进程之间的切换的负担要小。

三.            Java中的多线程实现

  java中,对于线程有专门的类,每一个线程对象都需继承java.util.Thread或者实现java.util.Runable,其中Thread是实现了Runable的类,而且要重写父类中的run()方法,要启动线程需调用线程中的start()方法启动,切记不可直接调用run()方法,那样就和一般的单线程方法调用没什么区别了

创建线程对象的方法如下:

1.      public Test1  extends Thread{ run(){…} }//继承Thread类,并重写run()方法

Test1  t1  =  new  Test1();     t1.start();

2.      public Test2  implements  Runable{ run(){…}}//实现Runable接口, 并重写run()方法

Test2   t2 = new Test2(); Thread  thread  =  new Thread(t2); t1.start();

  以上两种方法都可以,但考虑到java 的单继承机制,如果需要继承其他的类,则最好实现Runable接口。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics