`
李瑞辉++
  • 浏览: 19760 次
  • 性别: 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接口。

分享到:
评论

相关推荐

    多线程小结

    多线程小结

    Java多线程小结

    Java中多线程的学习的自我小结,有多线程的意思,多线程常见的控制方法等内容

    C++多线程编程入门小结.pdf

    C++多线程编程入门小结.pdf

    C++多线程编程入门小结

    一个c++开发技巧合集,也是大家多线程编程入门的总结。初学多线程编程的童鞋可以看看。

    多线程完整(C#),综合概念与例子,详细讲述多线程的运用

    1.多线程的概念 2.操纵线程 3.线程的同步和通讯 4.线程池和定时器 5.互斥对象 6.小结

    JAVA多线程操作方法实用大全

    欧柏泰克教学小结:JAVA多线程操作方法实用大全

    Linux多线程编程小结

     Linux进程创建一个新线程时,线程将拥有自己的栈(由于线程有自己的局部变量),但与它的创建者共享全局变量、文件描写叙述符、信号句柄和当前文件夹状态。  Linux通过fork创建子进程与创建线程之间是有差别的...

    c#中多线程访问winform控件的若干问题小结

    我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来解决这个问题,下面我将详细的介绍。 首先来看传统方法: 代码如下:public partial class Form1 ...

    Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】

    本文实例讲述了Python实现的服务器。分享给大家供大家参考,具体如下: python – 单进程服务器 #coding=utf-8 from socket import * #创建套接字 serSocket = socket(AF_INET, SOCK_STREAM) #重复使用绑定信息 ...

    分享40个Java多线程问题小结

    多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级,本文给大家分享40个Java多线程问题小结 的相关资料,需要的朋友可以参考下

    Java程序设计案例教程-第8章-多线程编程.pptx

    第4页 主要内容 8.1 Java线程模型 8.2 创建线程 8.3 同步与线程间通信 8.4 获取线程状态 8.5 本章小结 8.6 思考和练习 Java程序设计案例教程-第8章-多线程编程全文共36页,当前为第4页。 8.1 Java线程模型 Java对多...

    c#多线程中Lock()关键字的用法小结

    本篇文章主要是对c#多线程中Lock()关键字的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    突破JAVA万人面试,懂多线程者得天下.zip

    目录网盘文件永久链接 01课程安排av 02什么是并发和并行av ...08线程创建小结av 09线程生命周期avi 10.线程安全问题什么是线程安全avi 11线程安全同题问题分析avi 12线程安全问题线程安全问题演示avi ...............

    window编程 新小结

    个人小结 有关MFC中的多线程 消息循环 网络编程

    Python多线程模块Threading用法示例小结

    本文实例讲述了Python多线程模块Threading用法。分享给大家供大家参考,具体如下: 步入正题前,先准备下基本知识,线程与进程的概念。  相信作为一个测试人员,如果从理论概念上来说其两者的概念或者区别,估计只...

    Visual Basic.NET线程参考手册

    3.5 端到端的示例 3.5.1 编写自己的线程安全包装器 3.5.2 数据库连接池 3.6 本章小结第4章 设计模式 4.1 应用程序中的多线程 4.2 STA线程模式 4.3 MTA线程模式 4.3.1 指定线程模式 4.3.2 设计线程应用程序 4.3.3 ...

    5操作系统实验报告.doc

    报 告 课程名称: 线程控制实验 专业班级: 学 号: 姓 名: 报告日期: 2013年12月03日 计算机科学与技术学院 线程控制实验 一、目的和要求 通过本实验掌握在 Linux操作系统中遵循 Posix线程标准接口进行多线程程序...

    多线程编程指南(系统描述了线程标准 线程同步 多线程编程原则 等)

    1 多线程基础介绍15 定义多线程术语15 符合多线程标准16 多线程的益处17 提高应用程序的响应 17 有效使用多处理器17 改进程序结构17 占用较少的系统资源17 结合线程和RPC(远程过程调用)18 多线程概念18 并发性和...

    window程序设计小结

    个人的学习小结,有关MFC多线程和网络编程。

Global site tag (gtag.js) - Google Analytics