`
百合不是茶
  • 浏览: 354859 次
社区版块
存档分类
最新评论

JAVASE 线程技术

阅读更多

 

程序:静态的一些数据,可执行的
进程:正在进行的程序,每个进程都单独占用一块内存,
	多个进程之间不能数据共享,
	必须通过网络交换数据

线程:一个进程内部的多个并行的运行单元,
	同一个进程的多个线程之间可以通过内存共享数据

 

线程的格式;
如何定义线程
	继承Thread
	重写run()
	线程要做的事情必须全部在run中调用执行

public class A extends Thread{
	public void run(){
		//线程要干的活...
	}
}

如何启动线程:
	线程对象.start();
	
	start()方法只是给了虚拟机一个信号,本线程的run方法可以执行了
	至于什么时候执行,由虚拟机根据具体的情况安排

public class A extends Thread{

 public void run(){
    线程需要做的事情
   }

//主函数
   A a = new A();
//线程的启动必须是用start,不能是run
    a.start();
}

 

 

package Thread0627;
/**
 * 多线程的创建 1.类继承Thread 2.线程做的事情写在run方法中
 * 3,启动线程需要实例化的对象启动.start  4,线程传递参数只能
 * 通过构造方法传递
 * 
 * 启动线程使用的是start,实际上是告诉虚拟机线程已经准备好了可以
 * 启动,然后再调用run
 */

import java.util.ArrayList;
import java.util.Iterator;

public class hello  extends Thread{
	ArrayList<String> list = new ArrayList<String>();
	private String name;
	
	public hello(String name){
		this.name = name;
	}
	
	public void run(){
		for(int i =0;i<5;i++){
	  System.out.println(name +"运行" + i);
//		list.add("name"+i);
		}
		}
//		//使用for遍历
//		for(int i = 0;i<list.size();i++){
//			String str=list.get(i);
//			System.out.println(str);
//		}
		
		//使用迭代器进行遍历
		//将元素添加到迭代器中,再进行遍历 
		
//		Iterator<String> iter = list.iterator() ;
//		while(iter.hasNext()){
//			String str=iter.next();
//			System.out.println(str);
//		}
//		
//		for(String str:list){
//			System.out.println(str);
//		}
//	}

	public static void main(String[] args) {
//主函数来启动线程
		hello a = new hello("A");
		hello b = new hello("B");
		a.start();
		b.start();
}
}

 

用start启动线程输出的结果:线程输出的顺序随机变化的
B运行0
B运行1
B运行2
B运行3
B运行4
A运行0
A运行1
A运行2
A运行3
A运行4

 

	不能直接使用run 来启动线程:
      a.run();
	b.run();

输出的结果:
A运行0
A运行1
A运行2
A运行3
A运行4
B运行0
B运行1
B运行2
B运行3
B运行4

 

 

启动线程是main来启动的,启动线程的的对象在创建时 ,如果需要创建参数必须通过构造方法来传参数

使用线程来统计硬盘的文件个数:
package Thread0627;

public class Filecount extends Thread{

	int i = 0;
	String path;
	//通过构造方法传递参数
	public Filecount(String path){
		this.path = path;
	}
	
	
	public void run(){
		count();
	}
	public void count(){
     //写一个死循环不断的进行统计
		while(true){
			i++;
			System.out.println("正在统计"+path +"盘"+"有"+i+"个文件" );
			
			try {
				Thread.sleep(50);
			} catch (Exception e) {
			e.printStackTrace();
			}
		}
	}
	
	
}

 

package Thread0627;

public class threadDemo {

	public static void main(String[] args) {
       //主函数来启动线程,这个程序中有五个线程 
		//通过实例化来创建线程对象
		Filecount f1 = new Filecount("C");
		Filecount f2 = new Filecount("D");
		Filecount f3 = new Filecount("E");
		Filecount f4 = new Filecount("F");
		
		f1.start();
		f2.start();
		f3.start();
		f4.start();

	}

}

 

输出(列出部分结果):
正在统计C盘有1个文件
正在统计D盘有1个文件
正在统计F盘有1个文件
正在统计E盘有1个文件
......
......

 

0
0
分享到:
评论

相关推荐

    JavaSE多线程

    总的来说,理解并掌握Java的多线程技术,包括线程创建、状态管理、同步和通信,对于编写高效、可靠的并发程序至关重要。在实践中,合理运用这些知识可以有效提升程序性能,解决复杂的并发问题。

    javase之多线程技术

    Java中的多线程技术是Java进阶学习的重要组成部分,它涉及到并发编程的理论与实践,旨在提高程序的执行效率和响应速度。以下是对多线程技术的详细解释: 1. **CPU调度算法原理** - **先来先服务(FCFS)**:按照...

    javaSE常用相关技术

    ### JavaSE常用相关技术 #### 一、JavaSE概述与特性 JavaSE(Java Standard Edition)作为Java技术的基础部分,提供了构建桌面应用和其他基于标准PC环境应用的能力。它包括了核心Java API,如集合框架、I/O操作、...

    JavaSE 多线程必背程序清单

    【JavaSE 多线程必背程序清单】 在Java编程中,多线程是提高程序效率和并发性能的重要手段。本文将详细解析多线程的两种创建...在实际开发中,应合理利用多线程技术,同时注意线程安全,以保证程序的正确性和稳定性。

    11、JavaSE:多线程.pdf

    那么,为了能够更好地利用CPU资源,提高程序的执行效率,多线程技术应运而生。它允许多个线程并行工作,从用户角度看,就像是“多车道”允许车辆并行通过,提高了整体的效率。 在多线程编程中,线程实现是一个重点...

    javase开发多线程聊天室

    综上所述,"javase开发多线程聊天室"涉及到的技术点广泛,包括Java网络编程、多线程技术、IO流处理、设计模式应用、异常处理以及性能优化等多个方面。通过这样的项目实践,开发者能够深入理解Java SE的网络通信和...

    Javase 技术代码测试

    JavaSE(Java Standard ...这个项目旨在通过实践来检验和巩固以上各个JavaSE技术点的理解和应用能力。开发者可以通过阅读和运行代码,加深对这些概念的理解,同时也可以将其作为学习和复习JavaSE知识的参考资源。

    JavaSE专题-多线程总结.doc

    以下是对多线程技术的详细说明: 1. **多线程技术介绍** - **进程**:一个进程是操作系统分配给应用程序的内存空间,用于执行程序。每个应用程序在内存中都有其独立的进程。 - **线程**:线程是进程中的执行单元...

    JavaEE学习[JavaSE-06多线程.rar]

    JavaEE是企业级Java应用程序开发的框架,它涵盖了多种技术,包括Servlet、JSP、EJB等,用于构建分布式、组件化的Web应用。...在实际项目中,合理使用多线程技术和并发控制能大幅提升应用的性能和响应速度。

    javaSE多线程聊天程序(源代码)

    Java SE多线程聊天程序是一种基于Java编程语言开发的实时通信应用,它利用多线程技术来实现用户之间的并发交互。在这个程序中,多线程是核心机制,它确保了不同用户之间可以同时进行对话,提高了系统的响应速度和...

    EQQ代码简易版.zip适合javaSE 基于多线程面向对象思想,接口集合等基础技术

    1. **多线程技术**:在EQQ代码简易版中,多线程的应用是核心之一。多线程允许程序同时执行多个任务,提高程序的效率和响应性。通过创建Thread类的实例或实现Runnable接口,我们可以创建并管理线程。此外,理解和使用...

    JavaSE技术入门

    JavaSE技术入门部分知识点如下: Java程序结构:Java程序结构是构成Java程序的基本单元,通常包含类定义、方法、变量、注释等。Java程序的执行是从main方法开始的,main方法是程序的入口点。 编译和运行Java程序:...

    JavaSE版Tank大战源码

    该游戏是本人经过一个多月JAVA基础学习写出来的第一个项目,其中涉及的知识基本涵盖了JavaSE的大部分知识包括:java集合,java最强大的多线程技术,Swing技术,JavaSE播放声音的技术等其他的就不一一列举了 由于当时...

    0-JavaSE课程介绍

    JavaSE作为Java技术体系中的核心部分,不仅提供了学习JavaEE的基础,也为后续深入到其他领域(如Android应用开发)打下了坚实的技术根基。通过本课程的学习,学员能够系统地掌握Java编程的基本原理和高级特性,并...

    javase阶段15个实战项目代码

    在JavaSE阶段,学习者会接触到许多核心概念和技术,这些在后续的JavaEE(企业版)和Android开发中都至关重要。"javase阶段15个实战项目代码"的压缩包包含了15个小项目的源代码,旨在帮助学习者通过实践来深化对Java...

    马士兵多线程笔记.zip

    马士兵是一名知名的IT讲师,他的多线程训练营致力于帮助学员深入理解和掌握多线程技术。以下是对马士兵多线程笔记的详细解析。 1. **多线程基础**:多线程是指一个应用程序中同时执行多个线程(即任务)的能力。...

    javaSE项目

    5. **物联网技术**:虽然JavaSE主要用于桌面应用,但随着物联网的发展,Java也越来越多地被应用于嵌入式设备和物联网设备。这可能涉及到传感器数据的处理、网络通信协议(如MQTT或CoAP)的实现,以及与硬件设备的...

    JavaSE.zip

    这个压缩包“JavaSE.zip”包含了丰富的学习资源,旨在帮助开发者深入理解和掌握JavaSE的各项基础概念和技术。 首先,JavaSE的基础部分包括了Java语言的基础语法。这包括但不限于变量、数据类型(如整型、浮点型、...

    JavaSE将以

    JavaSE(Java Standard Edition)是Java开发平台的一个版本,主要用于桌面应用和服务器端开发。它提供了基础的Java编程环境,包括...深入学习JavaSE,不仅能够提升编程能力,还能帮助理解其他Java技术栈的原理和用法。

    javaSE javaEE oracle 初学必备

    JavaSE、JavaEE和Oracle是IT领域中三个重要的技术栈,对于初学者来说,掌握这些技术将为职业生涯打下坚实的基础。以下是对这三个技术领域的详细解释: JavaSE(Java Standard Edition)是Java平台的核心部分,提供...

Global site tag (gtag.js) - Google Analytics