Java之进程与线程
一、进程
二、线程
1.定义及特点
1)【定义】线程是一个进程内部的一条执行路径,Java虚拟机允许应用程序并发地运行多个执行路径
是系统独立调度和分派【CPU】的基本单位
2)特点
进程中执行运算的最小单位
处理机分配给线程,即真正在处理机上运行的是线程
2.主线程和子线程
3.子线程对象调用run() 和调用start()的区别
1 run() 相当于方法调用 ,不会创建新的栈空间,不会有新的子线程
2 start() 开辟新的栈空间,会产生新的子线程 , 再帮助调用run方法执行
4.多线程
多线程就是在一个进程中创建多个线程,每个线程完成一个任务
优点
多线程技术使程序的响应速度更快提高资源利用率程序设计更简单
特点
随机性(异步执行):谁抢到cpu,谁执行宏观上同时执行,微观上同一时刻只能执行一个线程(多核除外)
5.进程和线程区别
1)进程有独立的地址空间,一个进程崩溃后,不会对其它进程产生影响,而线程只是一个进程中的不同执行路径2)线程有自己的栈和局部变量,多个线程共享同一进程的地址空间3)一个进程至少有一个线程
6.Java中创建线程
两种创建方法:
1)第一种:继承Thread类
2)第二种:实现Runnable接口
创建步骤
1.定义线程2.创建线程对象3.启动线程4.终止线程
两种创建方法比较
1继承Thread 适合每个线程是独立执行,没有资源共享2实现Runnable适合存在资源共享情况,要和Thread类结合使用资源共享分两种情况a.相同操作,同一个资源:操作代码和资源同一个类中,并实现Runnable接口b.不同操作,同一个资源:资源单独一个类,操作分别在不同类中,并实现Runnable接口
7.线程五种状态
新生状态、可运行状态、运行状态、阻塞状态和死亡状态
8.线程调度
1)线程调度的方法
join()方法
阻塞指定的线程等到另一个线程完成以后再继续执行
public final void join();
public final void join(long mills);
public final void join(long mills,int nanos);
实现的效果:调用join()_方法的线程对象会插队到当前线程的前面(即先执行)
sleep()方法
当前线程在指定毫秒内停止执行而转入不可运行状态
public static void sleep(long millis);
yield()方法
当前线程转入暂时停止运行的状态
public static void yield();
2)sleep()与yield()的区别
9.线程终止
1.标志位,可以使run()方法正常执行完
2.stop()方法强行终止线程【不推荐】
3.interrupt()方法通过抛异常的方式 打断线程的执行
10.其他
【获取当前线程名字】Thread.currentThread().getName() (通用)
子类线程中可直接使用getName()获取当前线程名称
【线程命名】调用Thread类中的setName 改变线程的名字
Java之进程与线程相关推荐
- Java基础-进程与线程
文章目录 一. 进程/线程/线程上下文切换 1. 进程 2. 线程 3. 线程与进程的区别 4. 上下文 5. 寄存器 6. 程序计数器 7. PCB-进程控制块 8. 上下文切换 8.1. 上下文切 ...
- Java/Android 进程与线程之 多线程开发(二)
多线程开发 Java多线程开发 1.线程状态 线程阻塞 线程协作 作用 **wait() / notify** **join()** **Thread.sleep()** wait 与 sleep 的 ...
- 【Java并发编程 四】Java的进程与线程
什么是进程?进程是程序的⼀次执⾏过程,是系统运⾏程序的基本单位,因此进程是动态的.系统运行和关闭⼀个程序即是⼀个进程从创建,运⾏到消亡的过程.在 Java 中,当我们启动 main 函数时其实就是启动 ...
- 使用jps和jstack查看java的进程和线程信息
jps:列出正在运行的进程的pid, pname jstack -l pid: 列出某个进程内的线程,包含用户线程,守护线程和其它线程,守护线程有编译线程和引用处理线程 C:\Users\DELLOR ...
- java的进程和线程_java进程和线程区别与不同
java进程和线程区别与不同. 一.定义 1.进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位. 2.线程是进程的一个实体,是CPU调度和分派的基本 ...
- java中进程和线程的区别和联系_进程和线程有什么联系和区别?
1.定义: 1) 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位. 2) 线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独 ...
- Java之进程与线程练习
1.设计一个线程类:创建3个子线程,每个线程分别打印数字,分别睡眠100,200,300ms ->每个执行都是20次 代码: package Homework; //1.设计一个线程类:创建3个 ...
- JAVA多线程→进程与线程、线程周期、实现线程Thread、start()sleep()join()、线程互斥synchronized()锁当前对象this或方法、线程同步wait()notify()
宠辱若惊,贵大患若身. 何谓宠辱若惊? 宠为下,得之若惊,失之若惊,是谓宠辱若惊. 何谓贵大患若身? 吾所以有大患者,为吾有身. 及吾无身,吾有何患? 故贵以身为天下,若可寄于天下,爱以身为天下者,若 ...
- 进程vs线程 java 1615387415
进程vs线程 java 1615387415 进程与线程的区别
最新文章
- 【Java】Java中的数据类型说明
- Android 动态Tab分页效果实现
- 现在c++都转go了
- js中bind、call、apply函数的用法
- 遍历目录下的文件每250M打包一个文件
- centos 安装 图像识别工具 tesseract-ocr 流程
- [原创]jQuery动画弹出窗体支持多种展现方式
- C# 线程手册 第四章 线程设计原则 对等线程模型
- iOS开源项目周报1229
- freemarker自动生成html页面,利用Freemarker生成html静态页面_html/css_WEB-ITnose
- Depth Map Prediction from a Single Image using a Multi-Scale Deep Network(NIPS2014)论文阅读
- 经济统计学专业学C语言,经济统计学专业有哪些课程
- 1024技术论坛 | C#与.NET技术新发展
- 什么是布控球,作用是什么?
- Unity 用什么IDE比较好?
- oracle rebuild online,rebuild online 请慎用
- R语言 Hurst指数计算
- Dev-C++5.11游戏创作之火柴人跑酷
- 【BLE】广播数据包结构讲解,五颗蓝牙芯片对比
- SHELL脚本之awk妙用