进程的创建及常见方法的使用

本文详细讲解了进程与程序的区别,强调进程的动态属性和生命周期,并对比了进程与线程,阐述了线程的创建方式,如继承Thread类。此外,还介绍了Java中多线程的关键字Synchronized、线程的sleep()、wait()、notify()和notifyAll()方法的使用以及start()和run()方法的区别。
摘要由CSDN通过智能技术生成

进程和程序的区别?

一. 什么是进程:

1 .是一个正在执行的程序的实例
2. 担当分配系统资源的实体(cpu时间,内存)
3 进程信息被放在一进程控制块的数据结构中,这个进程控制块称为PCB,进程控制块的数据结构叫task_struct

二。进程和程序的区别:

(1)存储位置不同,程序在硬盘上,进程在内存里

(2)进程除了拥有和程序一样的代码,还有PCB,进程比程序多了很多的数据结构

(3)进程具有动态属性,即为可以有多种状态

(4)程序没有堆栈因为程序被加载到内存中才会分配堆栈

(5)进程的生命周期短暂,程序永久

(6)一个进程只能对应一个程序,而一个程序可以对应多个进程

三。进程和线程的区别:

(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元

(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。

(3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束

(4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的

(5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源

(6)线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志

创建线程的四种方式

一、继承Thread类型

通过继承Thread类来创建并启动多线程的一般步骤如下

1】定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体。

2】创建Thread子类的实例,也就是创建了线程对象

3】启动线程,即调用线程的start()方法

public class Main {
   
	public static void main(String[] args) {
   
		MyThread m = new MyThread();
		m.start();
		System.out.println(Thread.currentThread().getName() + "执行完成");
	}

}

class MyThread extends Thread {
   
	@Override
	public void run(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值