JAVA之多线程概念及其几种实现方法优劣分析

程序:指令集,静态的概念

进程:操作系统调动程序,是程序的一次动态执行过程,动态的概念

线程:在进程内的多条执行路径

Ps:单核的话进程都是虚拟模拟出来的,多核处理器才可以执行真正的多线程

单核通过CPU调度时间片实现虚拟模拟的多线程,比如执行main函数和GC在底层就是多线程,你执行你的,我执行我的

一个进程内部的线程共享相同的内存单元,可以访问相同的变量和对象,所以存在并发控制问题

线程和进程的区别:

1. 根本区别:进程是资源分配的单位,而线程是调度和执行的单位

2. 所处环境:多进程是指操作系统中可以有多个进程,多线程是同一个进程中有多个顺序流同时执行

3. 切换开销:每个进程拥有自己独立的代码和数据空间(进程上下文),进程切换开销大,同一个进程内的线程因为是共享的进程的共享数据,所以线程切换的开销很小

4. 分配内存:系统会为每个进程分配不同的内存区域,而却不会为线程分配,线程使用的是进程的资源

多线程的实现方法:

方法1:继承Thread类

Rabbit.java

package 多线程; /** * @author:yb * @version 创建时间:2018-12-24 下午4:14:16 类说明 */ /* * 模拟龟兔赛跑 * 1.创建多线程:继承Thread+重写run()线程体 * 2.使用线程:创建子类对象+对象调用start() */ public class Rabbit extends Thread { // 线程体 public void run() { for (int i = 1; i <= 100; i++) { System.out.println("兔子跑了" + i + "步"); } } } class Tortoise extends Thread { // 线程体 public void run() { for (int i = 1; i <= 100; i++) { System.out.println("乌龟跑了" + i + "步"); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgjpy.html