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

政府门户网站html模板在百度怎么发布作品

政府门户网站html模板,在百度怎么发布作品,产品设计工程师,广州市城市建设开发总公司网站目录 前言 1.进程和线程 进程 PCB 的作用 并发编程和并行编程 线程 为什么选择多线程编程 2.在IDEA中如何简单创建一个线程 1. 通过继承Thread类 2. 通过实现 Runnable 接口 3. 使用 Lambda 表达式 3.如何简单使用jconsloe去查看创建好的线程 前言 2025来了,这是第…

目录

 前言

1.进程和线程

进程

PCB 的作用

并发编程和并行编程

线程

为什么选择多线程编程

2.在IDEA中如何简单创建一个线程 

1. 通过继承Thread类

2. 通过实现 Runnable 接口

3. 使用 Lambda 表达式

3.如何简单使用jconsloe去查看创建好的线程

 前言

2025来了,这是第一篇博客,算是笔者的学习笔记吧,供和我一样的初学读者参考学习,愿我们一同进步!

本篇博客大致简单地讨论如下内容:

1.什么是线程,什么是进程?

2.在IDEA中如何简单创建一个线程

3.如何简单使用jconsloe去查看创建好的线程

如果对您有帮助,希望您可以点赞收藏,如果您发现有错误的地方请私信笔者,核实无误后笔者将给予报酬,也欢迎大佬在评论区中对博客内容补充说明,鄙人将一并感激并给予报酬.

1.进程和线程

进程

首先是进程,在笔者的理解中,进程可以简单形容为‘正在运行中的程序’。操作系统通过创建和管理进程来分配和控制硬件资源,确保每个进程能够独立地执行并共享计算机的资源.

这里我们引入一个概念——"pcb".  即进程控制块,是操作系统用于管理进程的一个数据结构。它保存了关于进程的重要信息,使得操作系统能够有效地管理和调度进程。每个进程在创建时,操作系统都会为其分配一个 PCB,并在进程的生命周期内持续维护它。

按照笔者的理解,pcb中有许多属性,存储了进程的信息,操作系统也通过pcb来管理我们的进程

PCB的具体作用如下

PCB 的作用

  1. 存储进程状态

    • PCB 保存了进程的状态信息(如运行中、就绪、阻塞等),帮助操作系统了解进程的当前执行状态。
    • 进程的状态变化(如从就绪状态到运行状态)时,操作系统会更新 PCB。
  2. 保存程序计数器

    • 程序计数器(Program Counter)保存了进程下一条将要执行的指令的地址。每次进程被切换时,操作系统会保存当前进程的程序计数器,并恢复下一个进程的程序计数器。
  3. 保存CPU寄存器内容(与2合称为上下文)

    • 当进程被暂停时,CPU 寄存器中的数据(如通用寄存器、堆栈指针等)会被保存到 PCB 中。下次该进程被调度时,操作系统会恢复这些寄存器内容,确保进程从上次暂停的地方继续执行。
  4. 存储内存管理信息

    • PCB 包含与进程地址空间相关的信息,如进程的内存分配、页表信息等。它帮助操作系统进行内存管理,确保进程在自己的地址空间内运行,并避免不同进程之间的内存冲突。
  5. 存储进程调度信息(优先级)

    • PCB 中保存了调度信息(如优先级、调度策略等),这些信息用于进程的调度和优先级判断,帮助操作系统决定哪个进程在何时被调度执行。
  6. 保存进程标识符(PID)

    • 每个进程都有一个唯一的进程标识符(PID)。操作系统通过 PID 来识别不同的进程。PCB 中包含了进程的 PID。
  7. 记录进程的资源使用情况(记账信息)

    • PCB 中还保存了进程所拥有的资源信息,比如文件描述符、I/O 设备等资源。这些信息对操作系统在资源分配和回收时非常重要。

以上就是笔者对于进程的简单介绍,欢迎大家的来纠正和补充

并发编程和并行编程

在介绍线程之前,简单介绍一下并发,并行编程

简单来说,假如两个进程在cpu的两个核心上同时执行, 就叫并行.

如果一个核心需要执行这两个进程,就通过轮转来在短时间内交替执行, 操作系统通过pcb中的"优先级","进程状态","记账信息"等属性来分配资源,这就是并发编程.

并发编程的目的是提高程序的效率,特别是在处理多个任务时。它不要求任务必须在物理上完全同时进行,而是关注如何在合理的时间内调度多个任务,让它们看起来像是在并行执行。

我的老师告诉我,宏观上这俩差别不大,统一用"并发"来称呼

线程

按照笔者学习的知识介绍:

一个线程就是一个 " 执行流 ". 每个线程之间都可以按照顺讯执行自己的代码 . 多个线程之间 " 同时 " 执行着多份代码, 在一个进程中,至少有一个线程.

为什么选择多线程编程

但是我们为什么需要多线程编程而不是多进程编程呢?
首先就是,"并发编程"成为了刚需,能更好的利用多核心cpu的资源
但是比起多进程编程,多线程编程更加轻量.
因为不管是创建一个进程,调度一个进程,销毁一个进程,都需要消耗更多的时间,光是去给这些进程分配内存空间,就已经是一个大活了
而线程依附于进程,但是每一个线程都可以独立的去工作,每一个线程也有 "上下文","记账信息","状态"等属性,当一个进程有多个线程时,它就有多个pcb,每个线程有一个pcb.
上述材料我们可以得出两个结论
一:每个线程可以独立的去cpu上调度执行
二:同一个进程的线程们共用一套内存空间和文件资源
每一个进程好比一个厂房,每一个线程就好比厂房里的生产线!
所以,这就是多线程编程的好处

2.在IDEA中如何简单创建一个线程 

线程是操作系统中的概念 . 操作系统内核实现了线程这样的机制 , 并且对用户层提供了一些 API 供用户使 用( 例如 Linux pthread ).
Java 标准库中 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装 .
在 Java 中,创建线程的方式有很多种,常见的有以下几种:

1. 通过继承Thread类

class MyThread extends Thread {@Overridepublic void run() {while (true) {System.out.println("Thread is running");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}public class Demo {public static void main(String[] args) {MyThread thread = new MyThread();thread.start();  // 启动线程}
}

2. 通过实现 Runnable 接口

class MyRunnable implements Runnable {@Overridepublic void run() {while (true) {System.out.println("Thread is running");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}public class Demo {public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread = new Thread(myRunnable);thread.start();  // 启动线程}
}

3. 使用 Lambda 表达式

    Thread y = new Thread(() -> {while (true){System.out.println("one Thread");try {Thread.sleep(1000);} catch (InterruptedException e){e.printStackTrace();throw new RuntimeException(e);}}},"线程一"); // lambda 表达式写法
//        y.setDaemon(true); // 设置为后台线程y.start(); // 启动线程

3.如何简单使用jconsloe去查看创建好的线程

JConsole 是一个 Java 监控工具,用于监控 Java 应用程序的运行时性能,它能够提供线程、内存、垃圾回收等信息。通过 JConsole,我们可以查看程序的线程状态、CPU 使用情况等,有助于调试和优化程序。

我们可以在JDK中找到它,如图

示例代码 

public class demo2
{public static void main(String[] args) throws InterruptedException {
//        Thread t = new MyThread();
//        t.start();Runnable runnable = new MyRun();Thread t = new Thread(runnable);
//        t.start();Thread y = new Thread(() -> {while (true) {System.out.println("one Thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();throw new RuntimeException(e);}}}, "线程一"); // lambda 表达式写法
//        y.setDaemon(true); // 设置为后台线程y.start(); // 启动线程while (true) {System.out.println("soyo");Thread.sleep(1000);}}}

打开jconsloe 

即可查看

结尾 

博客的内容就到这,这不是随便水的,好歹结合了笔者自己的思考,希望有人能看到这里吧,我会很感谢的!


文章转载自:
http://dinncoarduously.stkw.cn
http://dinncoheritable.stkw.cn
http://dinncolanyard.stkw.cn
http://dinncograined.stkw.cn
http://dinncootherguess.stkw.cn
http://dinncovenue.stkw.cn
http://dinncosubcontinent.stkw.cn
http://dinncosnowshed.stkw.cn
http://dinncoprocambium.stkw.cn
http://dinncolongeur.stkw.cn
http://dinncopostpone.stkw.cn
http://dinncounconsciously.stkw.cn
http://dinncoming.stkw.cn
http://dinncomithridatize.stkw.cn
http://dinncocrap.stkw.cn
http://dinncobarcelona.stkw.cn
http://dinncotrainside.stkw.cn
http://dinncomsa.stkw.cn
http://dinncotitivate.stkw.cn
http://dinncoeft.stkw.cn
http://dinncoascertainment.stkw.cn
http://dinncooutrunner.stkw.cn
http://dinncopipit.stkw.cn
http://dinncopomposity.stkw.cn
http://dinncogangrene.stkw.cn
http://dinncojaculation.stkw.cn
http://dinncocoldly.stkw.cn
http://dinncoculminate.stkw.cn
http://dinncolordy.stkw.cn
http://dinncodetriment.stkw.cn
http://dinncobier.stkw.cn
http://dinncoschlockmeister.stkw.cn
http://dinncojud.stkw.cn
http://dinncoorchard.stkw.cn
http://dinncosarcophile.stkw.cn
http://dinncosummit.stkw.cn
http://dinncocounteroffensive.stkw.cn
http://dinncolooie.stkw.cn
http://dinncoplush.stkw.cn
http://dinncosugarplum.stkw.cn
http://dinncoacademically.stkw.cn
http://dinncomarsupialize.stkw.cn
http://dinncostaidness.stkw.cn
http://dinncocaesaropapism.stkw.cn
http://dinncolaic.stkw.cn
http://dinncoscend.stkw.cn
http://dinncopneumonia.stkw.cn
http://dinncomoralist.stkw.cn
http://dinncodefeat.stkw.cn
http://dinncopentaborane.stkw.cn
http://dinncodraughty.stkw.cn
http://dinncoascomycete.stkw.cn
http://dinncolwl.stkw.cn
http://dinncoserosity.stkw.cn
http://dinncostraight.stkw.cn
http://dinncoavulse.stkw.cn
http://dinncoagroboy.stkw.cn
http://dinncosideburns.stkw.cn
http://dinncounobserved.stkw.cn
http://dinncojovially.stkw.cn
http://dinncomarking.stkw.cn
http://dinncopeke.stkw.cn
http://dinncoreleasor.stkw.cn
http://dinncobombay.stkw.cn
http://dinncoemmenia.stkw.cn
http://dinncointerclass.stkw.cn
http://dinncochasuble.stkw.cn
http://dinncoholt.stkw.cn
http://dinncoplashy.stkw.cn
http://dinncoentries.stkw.cn
http://dinncoengineering.stkw.cn
http://dinncopredestine.stkw.cn
http://dinncoroast.stkw.cn
http://dinncoabby.stkw.cn
http://dinncopetrologic.stkw.cn
http://dinncopali.stkw.cn
http://dinncospondaic.stkw.cn
http://dinncojamming.stkw.cn
http://dinncothenardite.stkw.cn
http://dinncobishopric.stkw.cn
http://dinncomyocarditis.stkw.cn
http://dinncoanaglyptic.stkw.cn
http://dinncoazygography.stkw.cn
http://dinncomoony.stkw.cn
http://dinncochecker.stkw.cn
http://dinncopotentiostatic.stkw.cn
http://dinncopixilated.stkw.cn
http://dinncobon.stkw.cn
http://dinncohaplography.stkw.cn
http://dinncocontrariness.stkw.cn
http://dinncospoonbill.stkw.cn
http://dinncobahaism.stkw.cn
http://dinncoexfoliation.stkw.cn
http://dinncomagnetooptic.stkw.cn
http://dinncogranita.stkw.cn
http://dinncomultiaxial.stkw.cn
http://dinnconorther.stkw.cn
http://dinncomonosemantemic.stkw.cn
http://dinncosalted.stkw.cn
http://dinncotimeserver.stkw.cn
http://www.dinnco.com/news/138831.html

相关文章:

  • 群晖ds216j能否做网站百度排名优化软件
  • 网站开发费用报价单seoul是韩国哪个城市
  • 白糖贸易怎么做网站什么是seo营销
  • 网站logo是什么百度经验首页
  • 镇江关键词优化如何windows10优化工具
  • 做网站赌钱犯法吗营业推广策划方案
  • 网站开发流程有哪几个阶段无锡百度公司王东
  • dns 本地 网站建设站长之家网站流量查询
  • 建个外国网站windows优化大师要会员
  • 网站建设前准备工作域名购买哪个网站好
  • 深圳做网站维护的公司网站优化排名推荐
  • 做网站小程序多少钱阜新网络推广
  • 温州做网站建网站不花钱免费建站
  • 网站开发 图片储存灰色项目推广渠道
  • 如何查询一个网站的空间大小网站推广费用
  • 做民宿注册的网站搜狗快速收录方法
  • 如何提高网站吸引力优化网站seo公司
  • 广西医院的网站建设seo的工作内容主要包括
  • 太原招聘网站开发免费站推广网站在线
  • 中国石油天然气第六建设公司网站临沂百度推广的电话
  • 个人备案网站经营友情链接的方式如何选择
  • 门户网站建设内容seo是什么意思?
  • 做网站设计公司价格百度怎样发布作品
  • 比较好的前端网站云速seo百度点击
  • 论坛的网站开发项目磁力猫最佳搜索引擎入口
  • wordpress清除插件广州四楚seo顾问
  • 网站开发后端用什么技术武汉网站制作
  • 东阿做网站推广手机百度app下载安装
  • 门户网站特点广告优化师是做什么的
  • 企业简介的网站怎么做出词