值得浏览的外国网站,杭州上城区抖音seo如何,seo百度关键词优化,国家工商网企业查询官网文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别#xff08;重点#xff01;#xff09;四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序#xff1a; 如#xff1a;我们知道JDBC的驱动程… 文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别重点四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序 如我们知道JDBC的驱动程序就是让JDBC和各个数据厂商的API进行适配。 由于硬件设备的种类繁多厂商也各异。所以硬件厂商在开发硬件的同时会提供驱动电脑装了对应的驱动才能让系统正确识别硬件设备。 操作系统内核 操作系统的核心功能管理对上对下。 系统调用 操作系统给应用程序提供的API。 比如有个程序想操作一下硬件设备就需要先通过系统调用把操作命令告诉给系统内核内核调用驱动程序进一步的操作硬件设备。
一、认识进程 process
1. 概念 一个运行起来的程序就是一个“进程”如果没运行起来就不算进程可以叫做“程序”。进程process也可以叫做任务task。 进程是操作系统对一个正在运行的程序的一种抽象换言之可以把进程看做程序的一次运行过程 同时在操作系统内部进程又是操作系统进行资源分配的基本单位。
2. 进程控制抽象块PCB Process Control Block 计算机内部要管理任何现实事物都需要将其抽象成一组有关联的、互为一体的数据。在Java语言中我们可以通过 类/对象 来描述这一特征。
// 以下代码是 Java 代码的伪码形式重在说明无法直接运行
class PCB {// 进程的唯一标识 —— pid;// 进程关联的程序信息例如哪个程序加载到内存中的区域等// 分配给该资源使用的各个资源// 进度调度信息留待下面讲解
}这样每一个PCB对象就代表者一个实实在在运行着的程序也就是进程。 操作系统再通过这种数据结构如线性表、搜索树等PCB对象组织起来方便管理时进行增删改查的操作。
二、认识线程
1. 线程是什么 一个线程就是一个“执行流”每个线程之间都可以按照顺序执行自己的代码多个线程之间“同时”执行着多份代码。
2. 为什么要有线程
1“并发编程”成为刚需。
单核CPU的发展遇到了瓶颈要想提高算力就需要多核CPU。而并发编程能更充分利用多核CPU资源。有些任务场景需要“等待IO”为了让等待IO的时间能够去做一些其他的工作也需要用到并发编程。
2虽然多进程也能实现并发编程但是线程比进程更轻量。
创建线程比创建进程更快销毁线程比销毁进程更快调度线程比调度进程更快。
3虽然线程比进程轻量但是人们还不满足于是有了“线程池” ThreadPool和 “协程”Coroutine。
三、进程和线程的区别重点
进程包含线程。每个进程至少有一个线程存在即主线程。进程和进程之间不共享内存空间同一个进程的线程之间共享一个内存空间。进程是系统分配资源的最小单位线程是系统调度的最小单位。
四、Java的线程和操作系统线程的关系
线程是操作系统中的概念操作系统内核实现了线程这样的机制并且对用户提供了一些API供用户使用例如 Linux 的 pthread库
五、第一个多线程编程
【代码】
//写一个类继承自标准库的Thread
class MyThread extends Thread {Overridepublic void run() {System.out.println(hello word!);}
}
public class ThreadDemo1 {public static void main(String[] args) {//创建线程是希望线程成为一个独立的执行流执行一段代码//创建线程是相当于雇了个人帮我们干活Thread t new MyThread(); //这里就不用new标准库的thread的了而是刚才创建的子类t.start(); //线程中的特殊方法启动一个线程}
}
【运行结果】