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

有哪些网站制作公司宁夏住房和城乡建设厅网站首页

有哪些网站制作公司,宁夏住房和城乡建设厅网站首页,佛山提供网站设计方案公司,wordpress如何套模板建站#x1f525;博客主页#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞#x1f44d;收藏⭐评论✍ 文章目录 1.0 进程概述 2.0 线程概述 2.1 多线程概述 3.0 常见的面试题#xff1a;谈谈进程与线程的区别 4.0 Java 实现多线程的常见方法 4.1 实现多线程方法 - 继承 Thread 类… 博客主页 【小扳_-CSDN博客】 ❤感谢大家点赞收藏⭐评论✍ 文章目录 1.0 进程概述 2.0 线程概述 2.1 多线程概述 3.0 常见的面试题谈谈进程与线程的区别 4.0 Java 实现多线程的常见方法 4.1 实现多线程方法 - 继承 Thread 类 4.2 实现多线程方法 - 实现 Runnable 接口 1.0 进程概述 一个程序运行起来就会对应一个进程进程是系统分配资源的基本单位。每个进程都有自己的地址空间、代码、数据、堆栈等资源可以独立运行并与其他进程隔离。 进程特点 1进程是程序的执行实例是计算机系统中最基本的执行单位。 2每个进程有自己的地址空间、资源和状态相互独立运行互不干扰。 进程的状态 1就绪态(Ready)进程已经准备好运行等待系统分配处理器资源。 2运行态(Running)进程正在执行指令占用处理器资源。 3阻塞态(Blocked)进程因等待某些事件发生而暂时停止运行。 4终止态(Terminated)进程执行完毕或被终止释放资源。 2.0 线程概述 是进程中的实际执行单元。线程是系统调度执行的基本单位。一个进程可以包含一个或多个线程共享进程的资源但每个线程有自己的栈空间和执行路径。 线程特点 1线程是进程中的执行单元可以看作是轻量级的进程。 2同一进程中的线程共享进程的地址空间和资源可以直接访问进程的全局变量和数据。线程共享进程的资源减少资源的重复占用提高资源的利用效率。 3线程之间的切换比进程之间的切换更快速因为线程共享相同的地址空间。 线程的状态 1就绪态(Ready)进程已经准备好运行等待系统分配处理器资源。 2运行态(Running)进程正在执行指令占用处理器资源。 3阻塞态(Blocked)进程因等待某些事件发生而暂时停止运行。 4终止态(Terminated)进程执行完毕或被终止释放资源。 2.1 多线程概述 多线程是指在一个程序中同时执行多个线程每个线程可以独立执行不同的任务或操作。在Java中多线程可以让程序更高效地利用计算机的多核处理器提高程序的性能和响应速度。 3.0 常见的面试题谈谈进程与线程的区别 1资源占用方面上的区别 进程拥有独立的地址空间和资源进程与进程之间相互独立即使一个进程出现了某些因素的影响不能运行了另一个进程也不会受到影响。 线程共享所属进程的地址和资源包括全局变量、栈空间等线程之间可以直接通信。若在一个进程中有若个线程中即使只有一个线程出现问题那么所有的线程都有可能会收到影响。 2通信和同步方面上 进程通信比较复杂需要使用 IPC 机制如管道、消息队列、共享内存等。 线程之间共享进程的资源可以直接访问全局变量线程通信更加方便。 3切换开销方面上的区别 进程切换的开销比较大需要保存和恢复整个进程的状态包括内存映像、寄存器等。 线程切换的开销比较小因为线程共享进程的资源只需要保存和回复线程的稀有数据。 举个例子 线程与进程的区别 4.0 Java 实现多线程的常见方法 1继承 Thread 类。2实现 Runnable 接口。 4.1 实现多线程方法 - 继承 Thread 类 先创建一个类继承 Thread 类重写 run 方法。还需要在主函数中利用 start 方法启动。这样就创建了一个线程调用 start 方法之后系统会自动调用重写的 run 方法也就是回调函数。交给系统执行 run 方法。 在 mian 中也是一个线程称为主线程主线程是自动创建的而 thread 线程则是我们手动创建出来的。 代码如下 public class demo1 {public static void main(String[] args) {Thread thread new MyThread();thread.start();while (true){System.out.println(正在执行主线程);}} }class MyThread extends Thread{Overridepublic void run() {while (true){System.out.println(正在执行 run 线程);}} } 运行结果 以上代码和运行结果都是多线程所展示的接下来对比一下单线程代码和运行结果 public class demo1 {public static void main(String[] args) {Thread thread new MyThread();thread.run();while (true){System.out.println(正在执行主线程);}} }class MyThread extends Thread{Overridepublic void run() {while (true){System.out.println(正在执行 run 线程);}} }         注意观察这里没有用到 start 方法那么就意味着没有创建新的线程当前是主线程。因为没有创建新的线程所以就不会有系统自动调用重写的 run 方法那么我们自己手动调用 run 方法也是可以的不过还是在同一个线程里面并没有创建新的线程。因此这里只能输出 正在执行 run 线程 这条语句只能等到这循环结束后才会执行下一个循环因为在同一个线程里面不能多并行。 运行结果 除了以上方法可以看出来是否是多线程代码还可以用到 jconsole.exe 这个应用程序直观的感受出来。还是用到以上的多线程代码来观察 进入的页面找到相应的 .java 文件 进入后可以看到一个 java 应用程序运行的时候至少有 15 个线程  可以我们手动创建的线程 Thread-0 还有自动创建的主线程 剩下的线程都是 jvm 帮我们做的一些其他工作涉及到的负责垃圾回收的负责记录调试信息的...... 详细补充 1start 方法调用操作系统提供的“创建线程”的 API 在内核中创建对应 PCB 并且把 PCB 加入到链表中。run 方法则是在进一步的系统调度到这个线程了之后系统自动就会执行上诉 run 方法中的逻辑。 2多线程的调度顺序是无序的在操作系统内部也称为“抢占式执行”。任何一个线程在执行到任何一个代码的过程中都可以被其他线程抢占掉它的 cpu 资源于是 cup 就给别的线程执行了。这样的抢占式执行充满了随机性正是这样的随机性使多线程的程序执行效果也会难以预测甚至可以会引入 bug 。 除了以上的写法之外还有用匿名内部类形式。 代码如下 public class demo2 {public static void main(String[] args) {Thread thread new Thread(){Overridepublic void run() {while(true){System.out.println(正在运行 run 方法);}}};thread.start();while (true){System.out.println(正在运行 main 方法);}} } 还可以用 lambda 方式进行进一步的简化 public class demo2 {public static void main(String[] args) {Thread thread new Thread(() - {while (true){System.out.println(正在运行 run 方法);}});thread.start();while (true){System.out.println(正在运行 main 方法);}} } 4.2 实现多线程方法 - 实现 Runnable 接口 为了提高代码的灵活性可以将线程的任务与线程本身分离使代码结构更清晰。 先实现 Runnable 接口一样的需要重写 run 方法再把这个实例作为参数传入到创建 Thread 类中。最后调用 start 方法启动线程。 代码如下 public class demo3 {public static void main(String[] args) {Thread thread new Thread(new MyRunnable());thread.start();while (true){System.out.println(正在运行 main 方法);}}} class MyRunnable implements Runnable{Overridepublic void run() {while (true){System.out.println(正在运行 run 方法);}} } 同样也可以用匿名类内部类方式 public class demo4 {public static void main(String[] args) {Thread thread new Thread(()- {while(true) {System.out.println(正在运行 run 方法);}});thread.start();while (true){System.out.println(正在运行 main 方法);}} }
http://www.zqtcl.cn/news/639630/

相关文章:

  • 用家庭宽带做网站 没有8080端口可以吗汕头教育学会网站建设
  • 南通seo公司网站广东涂料网站建设
  • 杭州哪家公司可以做网站苏州公司官网制作
  • 建一个网站大约多少钱做社区网站怎么做
  • 安阳建设网站企业单位网站建设内容需要什么
  • 网站如何被谷歌收录wordpress搭建企业官网
  • 网站 服务报价网站建设需要具备
  • 鹿泉企业网站建设wordpress使用支付宝当面付
  • 手机网站重要性彩票网站上的走势图是怎么做的
  • 牛牛襄阳网站建设做电商网站需要会些什么问题
  • 唯一做性视频的网站在线股票交易网站开发
  • 做二手的网站有哪些湛江小程序公司
  • 定制型网站建设wordpress md风格
  • 网站建设与推广的实训报告万网会员中心登录入口
  • 做网站如何推销电子商务类型的网站
  • 部署个人网站经典广告推广词
  • 海口模板建站定制南宁品牌网站设计公司
  • 江西网站设计方案网站通栏广告代码
  • 外包网站建设公司网站建设公司的销售好做吗
  • lol做任务领头像网站营销型网站重要特点是?
  • 设计师35岁后的出路嘉兴做网站优化的公司
  • 网站首页包含的内容网站网站注册
  • 企业网站改版建议北京市在建工程项目查询
  • 广州通和通信建设有限公司网站myeclipse怎么做网页
  • 最好的做网站公司有哪些泰安人才网官网登录
  • 怎么用wordpress修改网站源码辽宁省营商环境建设局网站
  • 做网站数据库怎么做wordpress video主题
  • 田园综合体建设网站梧州网站建设有哪些
  • 公司做网站的流程茂名网站建设公司
  • 徐州专业网站建设公司wordpress tag找不到