一. 介绍
每个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中多线程的学习的自我小结,有多线程的意思,多线程常见的控制方法等内容
C++多线程编程入门小结.pdf
一个c++开发技巧合集,也是大家多线程编程入门的总结。初学多线程编程的童鞋可以看看。
1.多线程的概念 2.操纵线程 3.线程的同步和通讯 4.线程池和定时器 5.互斥对象 6.小结
欧柏泰克教学小结:JAVA多线程操作方法实用大全
Linux进程创建一个新线程时,线程将拥有自己的栈(由于线程有自己的局部变量),但与它的创建者共享全局变量、文件描写叙述符、信号句柄和当前文件夹状态。 Linux通过fork创建子进程与创建线程之间是有差别的...
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来解决这个问题,下面我将详细的介绍。 首先来看传统方法: 代码如下:public partial class Form1 ...
本文实例讲述了Python实现的服务器。分享给大家供大家参考,具体如下: python – 单进程服务器 #coding=utf-8 from socket import * #创建套接字 serSocket = socket(AF_INET, SOCK_STREAM) #重复使用绑定信息 ...
多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级,本文给大家分享40个Java多线程问题小结 的相关资料,需要的朋友可以参考下
第4页 主要内容 8.1 Java线程模型 8.2 创建线程 8.3 同步与线程间通信 8.4 获取线程状态 8.5 本章小结 8.6 思考和练习 Java程序设计案例教程-第8章-多线程编程全文共36页,当前为第4页。 8.1 Java线程模型 Java对多...
本篇文章主要是对c#多线程中Lock()关键字的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
目录网盘文件永久链接 01课程安排av 02什么是并发和并行av ...08线程创建小结av 09线程生命周期avi 10.线程安全问题什么是线程安全avi 11线程安全同题问题分析avi 12线程安全问题线程安全问题演示avi ...............
个人小结 有关MFC中的多线程 消息循环 网络编程
本文实例讲述了Python多线程模块Threading用法。分享给大家供大家参考,具体如下: 步入正题前,先准备下基本知识,线程与进程的概念。 相信作为一个测试人员,如果从理论概念上来说其两者的概念或者区别,估计只...
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 ...
1 多线程基础介绍15 定义多线程术语15 符合多线程标准16 多线程的益处17 提高应用程序的响应 17 有效使用多处理器17 改进程序结构17 占用较少的系统资源17 结合线程和RPC(远程过程调用)18 多线程概念18 并发性和...
个人的学习小结,有关MFC多线程和网络编程。