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

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常用相关技术

    javaSE常用技术,StringBuffer,多线程,同步,集合,输入输出流(reader和stream),网络编程等。

    javase之多线程技术

    多线程相关知识 相关说明 标题:进阶课程之并发编程快速入门与多线程实战项目&gt; 课程内容: 1.CPU调度算法原理(先来先服务、最短作业法、优先级调度算法) 2.站在字节码角度+cpu上下文切换角度分析线程安全问题 3....

    Javase 技术代码测试

    该项目为Javase技术点测试,包括了线程、集合、内部类,各设计模式、枚举、io流、自定义注解等编程思想书籍几乎所以技术点,欢迎下载

    JavaSE_6_多线程

    进程与线程的区别,线程的操作状态,线程的操作方法,线程的同步与死锁,线程经典案例,生产者-消费者,现线程的生命周期

    java多线程核心技术

    资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的...要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。

    JavaSE专题-多线程总结.doc

    多线程的常见问题总结...1、多线程技术介绍 2、主线程介绍 3、创建线程的方式 4、线程中的异常问题 5、线程运行状态 6、线程第二种创建方式 7、多线程练习 8、线程安全问题分析和解决 9、多线程细节 10、同步使用的锁

    JavaSE版Tank大战源码

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

    javaSE项目

    当今物联网技术即将流行,这个javaSE项目中有基本的java知识点。包括数据库和数据库连接池的灵活运用,swing窗体,以及多线程的例子,运用了java的基本基础知识点

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

    javaSE学完练手的项目,无图形界面,易于上手学习

    javae 多线程

    java开发技术,多线程的讲解,javase多线程简易开发技术,多线程的讲解,ppt

    JAVASE阶段项目[香格里拉餐饮系统]

    中软培训过程中JAVASE阶段项目,用的主要技术点:swing、线程、流、集合 新做完的!绝对惟一!

    javaSE代码实例

    17.1.2 JavaSE 5.0中固定尺寸线程池的基本知识 374 17.1.3 自定义尺寸固定线程池的使用 375 17.1.4 单任务线程池的使用 377 17.1.5 可变尺寸线程池的使用 378 17.1.6 延迟线程池的使用 380 17.1.7 使用...

    javaSE技术全家桶汇总

    javaSE技术全家桶:1、计算机基础知识;2、java开发工具;3、java常量与变量;4、java运算符和流程控制语句;5、java面向对象;6、java数组;7、java排序,8、java常用类;9、java集合框架;10、java异常;11、java...

    javase 技术笔记

    该文档,包含了集合,线程、泛型、内部类等java的重要技术知识,

    JavaSE笔记.rar

    学习JavaSE做的一些笔记,包括Java基础知识(关键字,语句,常量,变量,运算符,数组,方法),Java面向对象(static,final,封装,继承,多态,内部类等)以及JavaAPI(String,正则,集合,映射,IO,Socket,反射,线程等技术)

    java concurrent source code

    资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的...要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。

    Java基础技术文档

    第01章 Java简介 第02章 Java编程环境 第03章 Java基本语法 第04章 Java与面向对象编程 ...第10章 多线程编程 第11章 Java小程序Applet 第12章 操作数据库 第13章 网络编程 第14章 Servlet编程基础

    狂神说上课笔记未删减 Java基础到技术升级

    11、JavaSE:多线程 12、JavaSE:网络编程 13、JavaSE:Gui编程 14、JavaSE:注解和反射 15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb 20、MyBatis 21、...

    javaSE内网聊天小项目

    涉及 多线程 c/s结构 面向对象。 try catch 使用 list数组 Socket 等技术。

    狂神笔记,b站狂神说课程笔记大全(最新)

    11、JavaSE:多线程 12、JavaSE:网络编程 13、JavaSE:Gui编程 14、JavaSE:注解和反射 15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb 20、MyBatis 21、Spring 22、...

Global site tag (gtag.js) - Google Analytics