Java 线程 1 - 进程和线程

13 篇文章 0 订阅
12 篇文章 2 订阅

参考:

Java 线程 0 - 前言


下面学习 Java 中进程和线程的概念以及它们之间的关系


主要内容:

  1. 进程
  2. 线程
  3. Java 中进程和线程

进程

参考:

进程

Java进程的理解

进程(process)是程序的基本执行实体,是进行 资源分配和调度基本单位

进程拥有独立的地址空间,包括文本区域(text region),数据区域(data region)和堆栈(stack region

线程

参考:线程

线程是进程中的一个实体,是系统 独立调度和分派最小单位,使得同一个进程可以同时并发处理多个任务,线程也被称为轻量级进程(Lightweight Process

线程除拥有极少的运行中必不可少的资源(拥有自己的堆栈,程序计数器,局部变量)外,和其它线程共享进程的全部资源(进程代码段,公有数据等)

并发性和并行性

并发性:同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果

并行性:同一时刻,有多条指令在多个处理器上同时执行

Java 中线程和进程

参考:Java获取当前进程ID以及所有Java进程的进程ID

Java 环境下,启动一个程序,通常对应于启动一个进程,并且至少会启动一个名称为 main 的线程。测试代码如下:

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

/**
 * Created by zj on 2017/10/16.
 */
public class MyProcess {

    public static void main(String[] args) {
        MyProcess process = new MyProcess();
        System.out.println("pid: " + process.getProcessID());
        System.out.println("thread name: " + Thread.currentThread().getName());
        System.out.println("thread id: " + Thread.currentThread().getId());
    }

    public int getProcessID() {
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        return Integer.valueOf(runtimeMXBean.getName().split("@")[0]);
    }

}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值