程序:静态的一些数据,可执行的 进程:正在进行的程序,每个进程都单独占用一块内存, 多个进程之间不能数据共享, 必须通过网络交换数据 线程:一个进程内部的多个并行的运行单元, 同一个进程的多个线程之间可以通过内存共享数据
线程的格式; 如何定义线程 继承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个文件 ...... ......
相关推荐
javaSE常用技术,StringBuffer,多线程,同步,集合,输入输出流(reader和stream),网络编程等。
多线程相关知识 相关说明 标题:进阶课程之并发编程快速入门与多线程实战项目> 课程内容: 1.CPU调度算法原理(先来先服务、最短作业法、优先级调度算法) 2.站在字节码角度+cpu上下文切换角度分析线程安全问题 3....
该项目为Javase技术点测试,包括了线程、集合、内部类,各设计模式、枚举、io流、自定义注解等编程思想书籍几乎所以技术点,欢迎下载
进程与线程的区别,线程的操作状态,线程的操作方法,线程的同步与死锁,线程经典案例,生产者-消费者,现线程的生命周期
资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的...要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。
多线程的常见问题总结...1、多线程技术介绍 2、主线程介绍 3、创建线程的方式 4、线程中的异常问题 5、线程运行状态 6、线程第二种创建方式 7、多线程练习 8、线程安全问题分析和解决 9、多线程细节 10、同步使用的锁
该游戏是本人经过一个多月JAVA基础学习写出来的第一个项目,其中涉及的知识基本涵盖了JavaSE的大部分知识包括:java集合,java最强大的多线程技术,Swing技术,JavaSE播放声音的技术等其他的就不一一列举了 由于当时...
当今物联网技术即将流行,这个javaSE项目中有基本的java知识点。包括数据库和数据库连接池的灵活运用,swing窗体,以及多线程的例子,运用了java的基本基础知识点
javaSE学完练手的项目,无图形界面,易于上手学习
java开发技术,多线程的讲解,javase多线程简易开发技术,多线程的讲解,ppt
中软培训过程中JAVASE阶段项目,用的主要技术点:swing、线程、流、集合 新做完的!绝对惟一!
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技术全家桶:1、计算机基础知识;2、java开发工具;3、java常量与变量;4、java运算符和流程控制语句;5、java面向对象;6、java数组;7、java排序,8、java常用类;9、java集合框架;10、java异常;11、java...
该文档,包含了集合,线程、泛型、内部类等java的重要技术知识,
学习JavaSE做的一些笔记,包括Java基础知识(关键字,语句,常量,变量,运算符,数组,方法),Java面向对象(static,final,封装,继承,多态,内部类等)以及JavaAPI(String,正则,集合,映射,IO,Socket,反射,线程等技术)
资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的...要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。
第01章 Java简介 第02章 Java编程环境 第03章 Java基本语法 第04章 Java与面向对象编程 ...第10章 多线程编程 第11章 Java小程序Applet 第12章 操作数据库 第13章 网络编程 第14章 Servlet编程基础
11、JavaSE:多线程 12、JavaSE:网络编程 13、JavaSE:Gui编程 14、JavaSE:注解和反射 15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb 20、MyBatis 21、...
涉及 多线程 c/s结构 面向对象。 try catch 使用 list数组 Socket 等技术。
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、...