JAVA 学习模块十八: 多线程
来源:互联网 发布:词频统计算法 编辑:程序博客网 时间:2024/06/05 06:32
- 多线程定义
- 多线程实现
1.多线程定义
/*多线程:java支持该技术进程的定义:(正在进行中的程序)不直接执行,只是在分配该应用程序的运行空间线程:执行路径,负责执行,负责进程中内容执行的一个控制单元,进程中肯定有线程。一个进程中可以有多个执行路径,即称为多线程。一个进程中至少有一个线程。开启多个线程是为了同时运行多部分代码。每一个线程都有自己运行的内容,这个内容称为线程要执行的任务。真实来讲并不是同时执行。cpu:快速切换线程,看似同时运行。线程多,被CPU处理的频率就减少,切换时随机的。JVM 启动时就启动了多个线程,至少有两个线程可以分析的出来。1.执行main函数的线程 该线程的任务代码都在主函数中2.负责垃圾回收的线程 都在垃圾回收器里定义。(底层内部完成的),每个对象都有能够回收的方法。(finalize() 方法)*/
2.多线程实现
/*多线程:java支持该技术如何实现多线程:*///正常执行class Demo{ private String name; Demo(String name) { this.name = name; } public void show() { for(int i = 0;i<5;i++) { for(int j = -999;j<9999;j++){} System.out.println(name+i); } }}class Th{ public static void main(String[] args) { Demo d1 = new Demo("wangcai"); Demo d2 = new Demo("duoduo"); d1.show(); d2.show(); }} //结果是先wangcai,在duoduo//多线程执行/*创建线程方式一:继承Thread 类步骤:1.定义一个类,继承Thread类2.覆盖Thread类中的run方法3.直接创建Thread的子类对象创建线程4.调用start()方法开启线程。*/class Demo extends Thread{ private String name; Demo(String name) { this.name = name; } public void run() { for(int i = 0;i<5;i++) { for(int j = -999;j<9999;j++){} System.out.println(name+i+ getName());//得到线程的名字,主线程的名字就是main } }}class Th{ public static void main(String[] args) { /* 创建线程的目的是为了开启一条执行路径,取运行指定的代码和其他代码实现同时运行。 而运行的指定代码就是这个执行路径的任务。 jvm创建的主线程的任务都定义在了主函数当中, 而自定义的线程都定义在: Thread类用于描述线程,线程是需要任务的。所以Thread类也对任务描述,这个任务就通过Thread类中的run()方法来体现。 也就是说,run方法就是封装自定义线程运行任务的函数。 run方法中定义的就是线程要运行的任务代码。 我们开启线程是为了运行指定代码,所以只有继承Thread类,并复写run方法。 将运行的代码定义在run方法中即可。 */ // Thread t1 = new Thread(); Demo d1 = new Demo("wangcai"); Demo d2 = new Demo("duoduo"); d1.start();//开启线程,调用方法 d2.start(); }
0 0
- JAVA 学习模块十八: 多线程
- JAVA学习总结十八
- JAVA学习第二十八课(多线程(七))- 停止线程和多线程面试题
- node.js学习(十八、URL模块)
- 18. Python脚本学习笔记十八模块
- (十八)java多线程之Callable Future
- java学习笔记(十八)
- JAVA学习总结二十八
- python模块学习---多线程处理
- python多线程模块threading学习
- QT学习笔记之十八 Threads Qt多线程练习
- JAVA学习笔记(二十八)
- java学习笔记(十八)代码块
- JAVA学习十八:String类、StrinBuffer类
- java学习十八 条件运算符
- JAVA学习第五十八课 — GUI
- JAVA学习笔记(十八)- API常用类
- JAVA基础学习(十八)--常用 工具类
- jquery 对话框(Dialog)插件
- iOS学习笔记 系统服务(三)蓝牙
- 常见的getOutputStream() has already been called for this response
- iOS学习笔记 从图册获取图片和视频
- 用Fiddler抓苹果手机内容
- JAVA 学习模块十八: 多线程
- Spring Boot实战与原理分析
- poj 3320 Jessica's Reading Problem(尺取)
- 做到这些细节,可使java性能得到优化
- 集合中有包含关系的字符串去重
- Android开发 SharedPreferences读取不到最新数据..
- Android跳转到系统Wifi界面的方式
- EasyUI常用控件禁用方法
- 字符串处理函数