当前位置: 首页 > news >正文

成都手机网站建设简单详细搭建网站教程

成都手机网站建设,简单详细搭建网站教程,硬件工程师培训机构哪家好,电商设计工资多少钱一个月JavaEE 进程线程 文章目录 JavaEE 进程线程1. 进程1.1 概念1.2 进程管理1.3 PCB (Process Control Block) 2. 线程2.1 概念2.1 线程与进程的区别2.3 创建线程 1. 进程 1.1 概念 什么是进程#xff1f; 进程是操作系统对一个正在执行的程序的一种抽象 我们可以打开…JavaEE 进程线程 文章目录 JavaEE 进程线程1. 进程1.1 概念1.2 进程管理1.3 PCB (Process Control Block) 2. 线程2.1 概念2.1 线程与进程的区别2.3 创建线程 1. 进程 1.1 概念 什么是进程 进程是操作系统对一个正在执行的程序的一种抽象 我们可以打开任务管理器里面每个正在执行的程序就是一个进程: 注: 我们可以认为程序 进程 (跑起来的程序) / 可执行文件(没有运行起来的程序) 而对于进程来说它们在执行的过程中都需要消耗一定的硬件资源 结论 进程是系统分配资源的基本单位 内存管理每个进程的内存是彼此独立互不干扰的。通常情况下进程A不能直接访问进程B的内存这种情况也称为进程独立性 进程间通信虽然有进程的独立性但有时候也需要多个进程相互配合完成某个工作这个时候就要用到进程间通信。进程间通信和进程的“独立性”并不冲突系统提供一些公共的空间(多个进程都能访问到的)让两个进程借助这种公共空间来交互数据 1.2 进程管理 在操作系统中进程管理可以分为两个步骤 先描述: 使用PCB将核心属性描述出来再组织: 使用一定的数据结构(在Linux中一般使用链表)把对应进程的PCB串到一起 下面将对PCB进行具体解释~ 1.3 PCB (Process Control Block) PCB 是指操作系统中的进程控制块Process Control Block也称为任务控制块Task Control Block。每个正在运行或等待执行的进程都有一个对应的 PCB。 进程的一些重要信息就存储在PCB中 PID(Process ID)进程的身份标识系统会保证同一个机器上在同一时刻每个进程的pid都是唯一的 内存指针(Memory Pointers)描述进程使用内存资源的详细情况如哪里存放数据哪里存放指令 文件描述符表(File descriptor table)描述进程使用了的硬盘的相关信息 优先级(Process Priority)表示进程的相对重要性或优先级。操作系统可以根据进程的优先级来进行调度以决定哪个进程先执行 进程状态(Process State)记录进程当前的状态如运行、就绪阻塞(等待控制台输入)等。这是操作系统用于判断进程是否可以执行的关键信息 进程调度(Process Scheduling)针对每个进程占据了cpu多长时间进行一个统计根据这个统计结果来进一步的调整调度的策略 上下文(Context)类似于存档与读档。其中保存上下文就是把CPU的关键寄存器中的数据保存到内存中(PCB的上下文属性中)而恢复上下文就是把内存中的关键寄存器中的数据加载到CPU的对应寄存器中 PCB扮演着操作系统中的重要角色通过保存和维护进程的状态和上下文信息操作系统可以在进程之间进行切换和调度!! 2. 线程 引子进程的使用能够解决“并发编程”的问题但进程本身在进行频繁创建和销毁的时候开销也比较大(开销主要体现在资源的申请和释放上)而线程能够解决这个问题 2.1 概念 什么是线程 一个线程就是一个“执行流”每个线程之间都可以按照顺序执行自己的代码多个线程之间可以“同时”执行多份代码 线程也可以称为“轻量级进程”在进程的基础上做出了改进同时线程在系统中的调度规则和进程是一样的线程的PCB中也有状态、优先级、上下文、记账信息… 2.1 线程与进程的区别 进程是包含线程的每个进程至少有一个线程存在即主线程 进程和进程之间不共享内存空间而线程与线程之间共享一个内存空间 多个线程的PCB中的内存指针都指向同一个内存空间这就意味着只有在创建第一个线程的时候需要从系统中分配资源后续的线程就不必分配直接共用前面分配的资源就可以这大大降低了资源频繁申请释放带来的开销 进程是系统分配资源的基本单位线程是系统调度的基本单位 进程与进程之间不会相互影响一个进程挂了一般不会影响其它正在执行的进程但线程不一样一旦一个线程挂了很可能会把同个进程中的其它线程一起带走导致整个进程一起崩溃 因为共享同一个内存空间同一个进程中的线程可能会相互干扰从而造成线程安全问题 线程也不是越多越好线程太多调度开销也会很大 2.3 创建线程 创建线程有以下几种方式 继承Thread类 先继承Thread来创建一个线程类 class MyThread extends Thread {Overridepublic void run() {System.out.println(这里是线程运行的代码);} }创建MyThread类的实例 Thread myThread new MyThread();调用start方法启动线程 myThread,start(); //线程开始运行从上述代码可以发现我们并没有用对象.方法名的方式调用run方法但却依旧能够执行run方法关键就在于 线程在调用start()方法的时候才正式构建run()方法相当于这个线程的入口方法此处的run方法不需要我们手动调用而会在线程创建好之后(即调用start方法后)被JVM自动调用执行 实现Runnable接口 实现Runnable接口 class MyRunnable implements Runnable {Overridepublic void run() {System.out.println(这是线程运行的代码);} }创建Thread类实例调用Thread的构造方法时将Runnable对象作为target参数 Thread t new Thread(new MyRunnable());调用start方法 t.start(); //线程开始运行匿名内部类创建Thread子类对象 package demo1;public class DemoThread3 {public static void main(String[] args) {Thread t1 new Thread() {Overridepublic void run() {System.out.println(使用匿名类创建Thread子类对象);}};t1.start();} }匿名内部类创建Runnable子类对象 package demo1;public class DemoThread5 {public static void main(String[] args) {Thread t2 new Thread(new Runnable() {Overridepublic void run() {System.out.println(使用匿名类创建Runnable子类对象);}});t2.start();} }使用lambada表达式创建Runnable子类对象 package demo1;public class DemoThread5 {public static void main(String[] args) {Thread t3 new Thread(() - {System.out.println(这里使用lambda表示式相当于实现Runnable接口并重写了run方法);});t3.start();} }因为lambda表达式写起来比较简洁所以我们一般使用lambda表达式来创建线程。
http://www.zqtcl.cn/news/45361/

相关文章:

  • cmsinitiatingoccupancyfraction上海企业网站优化
  • 深圳网站建设就q479185700顶上展示型网站建设公司
  • 上海市工程质量建设管理协会网站网站如何增加百度权重的方法
  • 做的阿里巴巴网站的放哪个科目在哪几个网站里做自媒体赚钱
  • 无需登录网页小游戏网站有没有好的做海报的网站
  • 58做二手车网站应该怎么推广做阿里国际网站要收费吗
  • 网站手机端排名软件物流如何做网站
  • 深圳网站建设公司 交通网页制作网站开发流程
  • 网站建设 实训网站成功案例怎么做
  • c 怎么做网站天津网站建设方案
  • go做后端的网站logo在线设计生成
  • 做视频开头的网站wordpress hook机制
  • 网站开发证协会秘书处工作建设 网站
  • 河北省住房和城乡建设局网站html网站开发语言
  • 网站开发得多少钱邢台网站关键词优化
  • 建立网站的链接结构有哪几种形式?简述其各自的优缺点公众号排版怎么做
  • 免费网站中文源码下载百度app下载最新版
  • google网站提交入口少儿编程机构
  • 网站建设报价选兴田德润wordpress评论显示ua
  • 二级学院网站建设自评报告做静态网站怎样让图片自己切换
  • 济南网站优化培训成都网站制作scgckj
  • 北京团建网站个人信息管理系统
  • 怎么给网站做超链接网站建设验收报告范本
  • 把excel做数据库分享成网站王野虓
  • 网站规划建设案例百度爱采购网站
  • 高端网站教建设装修平台网站
  • 佛山网站建设锐艺传播做网站买好域名怎么办
  • 如何进入设计公司网站桂林旅游网页设计
  • 简单电子商务网站建设wordpress路由
  • 五大门户网站分别是lamp网站建设