`
GLC
  • 浏览: 112486 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java线程简单总结

 
阅读更多
[size=large]
线程简单总结:
a、线程的简单理解:程序中一个独立运行单位。有单线程和多线程之分;单线程就是我们平常用得比较多的调用、嵌套;而接下来就着重介绍多线程。

b、多线程:即多个程序同时进行,其数据互不干扰和影响;
这里还要介绍下进程:简单地说、一个程序就是一个进程;而线程是一个进程内部的多个运行单位。进程只能调用数据、而线程不仅可以调用数据而且还可以改变数据。
在单核CPU中、多线进程是通过时间的停顿来实现。

c、多线程的实现:其实现过程可分为以下方法:
1、继承Thread类实现继承:主要是在run方法中重写方法来编写线程要实现的调用。然后调用start()方法来启动线程;
例:
public class CountFileThread extends Thread{

	private String path;
	private int count;
	private String rootDirName;
	//用构造器接收传递的路径和计数器
	public CountFileThread(String path){
		this.rootDirName=path;
	}
	
	//调用线程对象的start()方法后、线程就从它的
	public void run(){
		//定义一个当前时间的计时变量
		long start=System.currentTimeMillis();
		//调用文件统计方法
		int fileCount=countDir(this.rootDirName);
		//定义一个变量,得到当前运行所花时间
		long timeCost=System.currentTimeMillis()-start;
		//输出文件个数
		System.out.println("磁盘"+this.rootDirName+"统计出的文件个数"+
		fileCount+"/n统计所花时间:"+timeCost);
	}
	/*
	 * path 所传递路径
	 * size 返回统计的文件个数
	 */
	public int countDir(String path){
		//用于统计文件个数
		int size=0;
		//先实例化一个文件对象
		File file=new File(path);
		//判断文件目录是否存在
		if(!file.exists()){
			return size;
		}
		//用数组将路径所在的文件存装
		File[] subFile=file.listFiles();
		//再进行判断列表子目录是否存在
		if(subFile==null){
			return size;
		}
		for(int i=0;i<subFile.length;i++){
			//判断此文件是目录还是文件
			if(subFile[i].isDirectory()){
				//如果是目录,则进行递归调用
				size+=countDir(subFile[i].getAbsolutePath());
			}
			//如果是文件,则进行直接相加
			else if(subFile[i].isFile()){
				size++;
			}
		}
		return size;
	}
}


2、实现Runnable接口创建线程:主要定义一个实现Runnable接口的类,实现run()方法、再将这个类的实例作为Thread的构造方法的参数,创建Thread类的实例;再启动线程。其接口主要区别是同时实现多个线程。
例:
// 实例化对象、是每个磁盘做为一个线程
		File[] file = File.listRoots();
		for (int i = 0; i < file.length; i++) {
			// 实例化对象
			RunnableCount run = new RunnableCount(file[i].getAbsolutePath(),
					i + 1);
			// 磁盘中统计出的文件个数
			// int count=run.countDir(file[i].getAbsolutePath());
			// 构造Thread对象
			Thread thread = new Thread(run);
			// 启动线程
			thread.start();

		}

3、以内部类的方式创建线程:即在一个方法中创建线程、当方法被调用时,线程即启用;此方法也能同时实现多个线程。
例:
*
	 *这个方法会启动一个匿名匿名内部类线程
	 */
	private void MyThread(final int i, final String path) {
	    //实例化Runnable接口对象
	    Runnable run=new Runnable(){
			public void run() {
	    		int count=countDir(path);
	    		System.out.println("第"+i+"个磁盘的文件总数是:"+count);
	    	}
	    };
	    //最后启用这个内部线程
	    Thread thread=new Thread(run);
	    thread.start();

[/size]
分享到:
评论

相关推荐

    Java多线程编程总结

    #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个进程拥有独立的内存空间。...

    Java线程详细总结

    ### Java线程详细总结 #### 一、Java线程简介 Java中的线程是一个轻量级的进程,它能够在一个程序中并发地执行多个任务。Java语言直接支持线程的概念,这使得Java成为多线程编程的理想选择。与进程相比,线程具有...

    java多线程全面总结

    java多线程全面总结,简单的介绍多线程技术中的各种应用问题,是你对多线程有更多的认识!

    java线程安全总结

    ### Java线程安全的核心概念与实践 #### 一、Java内存模型 理解Java线程安全首先需要掌握Java内存模型(JMM)。JMM是Java虚拟机(JVM)的一部分,它规定了程序中各种变量(包括实例字段、静态字段和构成数组对象的...

    java线程安全总结.pdf

    以下是对Java线程安全的详细总结: 1. **线程不安全问题** - 数据竞争:当多个线程同时访问并修改同一份数据时,如果没有适当的同步控制,可能导致数据的不一致。 - 死锁:两个或更多线程相互等待对方释放资源,...

    java 多线程设计模式 进程详解

    《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? 总结 第二章 Java线程API 通过Thread类创建线程 使用Runable接口的线程 线程的生命周期 线程命名 ...

    java线程使用教程

    ### Java线程使用教程知识点详解 #### 一、线程基础概述 - **定义与特点**:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。Java是首个在语言级别明确支持线程特性的...

    Java线程总结教程

    ### Java线程总结教程知识点详解 #### 一、操作系统与多线程概念 - **多任务与分时操作系统**:现代操作系统(如Windows、Linux)能够实现多任务处理,即在用户看来似乎多个应用程序在“同时”运行。实际上,这是...

    Java线程的简单例子

    总结起来,Java线程涉及的内容广泛,包括线程的创建、控制、同步以及线程池的使用。理解这些知识点对于编写高效、安全的多线程Java应用程序至关重要。在实践中,合理地利用线程和同步机制,能有效提升程序的性能,...

    java多线程总结

    Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。本文将深入探讨Java多线程的相关知识点,包括线程的创建、线程的状态、同步机制以及线程安全问题。 1. **线程的创建*...

    java线程 线程学习资料 java线程教程

    ### Java线程教程知识点梳理 #### 一、教程概述 - **目标读者**: 本教程主要面向具备丰富Java基础知识但缺乏多线程编程经验的学习者。 - **学习成果**: 学习者能够掌握编写简单的多线程程序的能力,并能够理解和...

    java线程与模式总结

    ### Java线程与模式总结 #### 一、Java线程简介 Java中的线程机制是其一大亮点之一,它直接支持线程级别的并发处理。线程相比于进程具有创建成本低、上下文切换快等优势,这使得Java在处理高并发场景时能够表现出色...

    Java线程书

    ### Java线程基础知识详解 #### 一、引言 随着计算机技术的发展,多核处理器已经成为了标配,这为多线程编程提供了强大的硬件支持。Java作为一种广泛应用的编程语言,在其设计之初便内置了对线程的支持,使得...

    java线程理解小程序

    总结一下,"java线程理解小程序"主要涵盖了以下几个知识点: 1. Java线程的基本概念和创建方式:实现`Runnable`接口或继承`Thread`类。 2. Java并发包中的线程池:`ExecutorService`、`ThreadPoolExecutor`等。 3. ...

    java 多线程交互简单范例

    总结来说,这个压缩包提供了一个学习和实践Java多线程同步的实例。通过分析和运行这些代码,我们可以更好地理解如何在并发环境中控制线程的执行顺序,避免数据不一致,以及如何有效地设计和实现线程间的协作。对于...

    java多线程编程总结

    ### Java多线程编程总结 #### 一、Java多线程实现方式概述 Java多线程编程技术在软件开发中占据着重要的地位,特别是在需要处理并发任务或提高应用程序响应速度的场景下。Java中实现多线程的方式主要包括:继承`...

Global site tag (gtag.js) - Google Analytics