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

免费网站模板 html网上开店需要多少钱?

免费网站模板 html,网上开店需要多少钱?,接做网站需要问什么软件,缪斯设计公司多线程 什么是线程?线程和进程的区别?#xff08;了解#xff09; 线程#xff1a;是进程的一个实体#xff0c;是 cpu 调度和分派的基本单位#xff0c;是比进程更小的 可以独立运行的基本单位。 进程#xff1a;具有一定独立功能的程序关于某个数据集合上的一次运…多线程 什么是线程?线程和进程的区别?了解 线程是进程的一个实体是 cpu 调度和分派的基本单位是比进程更小的 可以独立运行的基本单位。 进程具有一定独立功能的程序关于某个数据集合上的一次运行活动是操作 系统进行资源分配和调度的一个独立单位。 特点线程的划分尺度小于进程这使多线程程序拥有高并发性进程在运行 时各自内存单元相互独立线程之间 内存共享这使多线程编程可以拥有更好 的性能和用户体验。 创建线程有几种方式必会 1.继承 Thread 类并重写 run 方法创建线程实现简单但不可以继承其他类 2.实现 Runnable 接口并重写 run 方法。避免了单继承局限性编程更加灵活实现解耦。 3.实现 Callable 接口并重写 call 方法创建线程。可以获取线程执行结果的返回 值并且可以抛出异常。 4.使用线程池创建使用 java.util.concurrent.Executor接口) Runnable 和 Callable 的区别必会 主要区别 Runnable 接口 run 方法无返回值Callable 接口 call 方法有返回值支持泛型 Runnable 接口 run 方法只能抛出运行时异常且无法捕获处理Callable 接口 call 方 法允许抛出异常可以获取异常信息 如何启动一个新线程、调用 start 和 run 方法的区别必会 线程对象调用 run 方法不开启线程。仅是对象调用方法。 线程对象调用 start 开启线程并让 jvm 调用 run 方法在开启的线程中执行 调用 start 方法可以启动线程并且使得线程进入就绪状态而 run 方法只是 thread 的一 个普通方法还是在主线程中执行。 线程有哪几种状态以及各种状态之间的转换(必会) 1. 第一是 new-新建状态。在生成线程对象并没有调用该对象的 start 方法这是线程处于 创建状态。 2. 第二是 Runnable-就绪状态。当调用了线程对象的 start 方法之后该线程就进入了就绪 状态但是此时线程调度程序还没有把该线程设置为当前线程此时处于就绪状态。 3. 第三是 Running-运行状态。线程调度程序将处于就绪状态的线程设置为当前线程此时线 程就进入了运行状态开始运行 run 函数当中的代码。 4. 第四是阻塞状态。阻塞状态是线程因为某种原因放弃 CPU 使用权暂时停止运行。直到线程 进入就绪状态才有机会转到运行状态。阻塞的情况分三种 (1)等待 – 通过调用线程的 wait() 方法让线程等待某工作的完成。 (2)超时等待 – 通过调用线程的 sleep() 或 join()或发出了 I/O 请求时线程会进入到阻塞状态。 当 sleep()状态超时、join()等待线程终止或者超时、或者 I/O 处理完毕时线程重新转入就绪状 态。 (3)同步阻塞 – 线程在获取 synchronized 同步锁失败(因为锁被其它线程所占用)它会进入同 步阻塞状态。 5. 第五是 dead-死亡状态: 线程执行完了或者因异常退出了 run()方法该线程结束生命周期. 线程相关的基本方法必会 线程相关的基本方法有 waitnotifynotifyAllsleepjoinyield 等 1.线程等待wait 调用该方法的线程进入 WAITING 状态只有等待另外线程的通知或被中 断才会返回需要注意的是调用 wait()方法后会释放对象的锁。因此wait 方 法一般用在同步方法或同步代码块中。 2.线程睡眠sleep sleep 导致当前线程休眠与 wait 方法不同的是 sleep 不会释放当前占 有的锁,sleep(long)会导致线程进入 TIMED-WATING 状态而 wait()方法 会导致当前线程进入 WATING 状态. 3.线程让步yield yield 会使当前线程让出 CPU 执行时间片与其他线程一起重新竞争 CPU 时间片。一般情况下优先级高的线程有更大的可能性成功竞争得到 CPU 时间片但这又不是绝对的有的操作系统对 线程优先级并不敏感。 4.线程中断interrupt 中断一个线程其本意是给这个线程一个通知信号会影响这个线程内部的 一个中断标识位。这个线程本身并不会因此而改变状态(如阻塞终止等) 5.Join 等待其他线程终止 join() 方法等待其他线程终止在当前线程中调用一个线程的 join() 方 法则当前线程转为阻塞状态回到另一个线程结束当前线程再由阻塞状态变 为就绪状态等待 cpu 的宠幸. 6.线程唤醒notify Object 类中的 notify() 方法唤醒在此对象监视器上等待的单个线程如 果所有线程都在此对象上等待则会选择唤醒其中一个线程选择是任意的并 在对实现做出决定时发生线程通过调用其中一个 wait() 方法在对象的监视 器上等待直到当前的线程放弃此对象上的锁定才能继续执行被唤醒的线程 被唤醒的线程将以常规方式与在该对象上主动同步的其他所有线程进行竞争。类 似的方法还有 notifyAll() 唤醒再次监视器上等待的所有线程。 wait()和 sleep()的区别必会 1. 来自不同的类 wait():来自 Object 类 sleep():来自 Thread 类 2.关于锁的释放 wait():在等待的过程中会释放锁 sleep():在等待的过程中不会释放锁 3.使用的范围 wait():必须在同步代码块中使用 sleep():可以在任何地方使用 4.是否需要捕获异常 wait():不需要捕获异常 sleep():需要捕获异常 线程池 为什么需要线程池了解 在实际使用中线程是很占用系统资源的如果对线程管理不完善的话很容易导致 系统问题。因此在大多数并发框架中都会使用线程池来管理线程使用线程池管理线程主 要有如下好处 1、使用线程池可以重复利用已有的线程继续执行任务避免线程在创建销毁时造成的消耗 2、由于没有线程创建和销毁时的消耗可以提高系统响应速度 3、通过线程可以对线程进行合理的管理根据系统的承受能力调整可运行线程数量的大小等 线程池的分类高薪常问 1. newCachedThreadPool创建一个可进行缓存重复利用的线程池 2. newFixedThreadPool创建一个可重用固定线程数的线程池以共享的无 界队列方式来运行这些线程线程池中的线程处于一定的量可以很好的控制线程的并发量 3. newSingleThreadExecutor 创 建 一 个 使 用 单 个 worker 线 程 的 Executor 以无界队列方式来运行该线程。线程池中最多执行一个线程之后提交的线程 将会排在队列中以此执行 4. newSingleThreadScheduledExecutor创建一个单线程执行程序它可 安排在给定延迟后运行命令或者定期执行 5. newScheduledThreadPool创建一个线程池它可安排在给定延迟后运行 命令或者定期的执行 6. newWorkStealingPool创建一个带并行级别的线程池并行级别决定了 同一时刻最多有多少个线程在执行如不传并行级别参数将默认为当前系统的 CPU 个数 核心参数高薪常问 corePoolSize核心线程池的大小 maximumPoolSize线程池能创建线程的最大个数 keepAliveTime空闲线程存活时间 unit时间单位为 keepAliveTime 指定时间单位 workQueue阻塞队列用于保存任务的阻塞队列 threadFactory创建线程的工程类 handler饱和策略拒绝策略 线程池的原理高薪常问 线程池的工作过程如下 当一个任务提交至线程池之后 1. 线程池首先判断核心线程池里的线程是否已经满了。如果不是则创建一个新的工作线 程来执行任务。否则进入 2 2 判断工作队列是否已经满了倘若还没有满将线程放入工作队列。否则进入 3 判断线程池里的线程是否都在执行任务。如果不是则创建一个新的工作线程来执行。 如果线程池满了则交给饱和策略来处理任务。 拒绝策略了解 ThreadPoolExecutor.AbortPolicy系统默认 丢弃任务并抛出 RejectedExecutionException 异常让你感知到任务被拒绝了我们可以根据业务逻辑选 择重试或者放弃提交等策略 ThreadPoolExecutor.DiscardPolicy也是丢弃任务但是不抛出异常相对而 言存在一定的风险因为我们提交的时候根本不知道这个任务会被丢弃可能造成数据丢失。 ThreadPoolExecutor.DiscardOldestPolicy 丢弃队列最前面的任务然后重新尝试执 行任务重复此过程通常是存活时间最长的任务它也存在一定的数据丢失风险 ThreadPoolExecutor.CallerRunsPolicy既不抛弃任务也不抛出异常而是将某些任务 回退到调用者让调用者去执行它。 线程池的关闭了解 关闭线程池可以通过 shutdown 和 shutdownNow 两个方法 原理遍历线程池中的所有线程然后依次中断 1、shutdownNow 首先将线程池的状态设置为 STOP,然后尝试停止所有的正在执行和未执 行任务的线程并返回等待执行任务的列表 2、shutdown 只是将线程池的状态设置为 SHUTDOWN 状态然后中断所有没有正在执 行任务的线程 写在最后 线程相关知识点在面试过程中十分容易被问到。在笔者的面试经历中有关线程的问题被询问了四五次对线程以及线程池的理解线程池核心参数线程执行过程等这些相关知识点需要记忆加理解并且能够用自己的话表述出来。笔者小中大厂均有面试经历每日分享全栈知识与JAVA面试题希望与大家共同进步。
http://www.zqtcl.cn/news/412259/

相关文章:

  • 网站建设每年需要交多少钱天津制作网站公司
  • 网站平台都有哪些wordpress 主题制作 视频
  • 中山网站建设方案家具网站开发目的
  • 教师个人网站建设建模培训多少钱
  • 个人网站可以做社交类型网站建设功能说明书
  • 微站是什么移动网站 拉新
  • 黑龙江省农业网站建设情况wordpress4.94主题上传不显示
  • 个人网站的域名重庆建立公司网站
  • 什么做网站做个多少钱啊百度网盘app
  • 做网站的公司挣钱吗石家庄房产
  • 烟台网站建设设计公司安徽建设工程信息网查询平台蔡庆树
  • 微信链接的微网站怎么做西安企业网站制作价格
  • uniapp怎么做淘客网站表格布局的网站
  • wordpress侧栏图片插件提升seo搜索排名
  • 如何查询网站的域名注册邹城建设银行网站
  • 招生门户网站建设方案国家企业信用信息公示信息查询网
  • 用dw做淘客网站的步骤移动互联网应用技术
  • 企业合作的响应式网站石家庄网站建设推广
  • 成都网站排名优化开发广告传媒公司简介模板
  • 中山网站建设企业网站内容建设
  • 免费网站建站页面wordpress的主题在哪个文件夹
  • 国企网站建设要求站长之家排行榜
  • 做视频网站利润如何处理旅游电子商务网站建设技术规范
  • 做网站架构网页浏览器怎么卸载
  • 做甜品的网站网页传奇游戏排行榜比亚迪
  • 广州网站建设菲利宾百度关键词优化排名
  • 南昌网站建设业务wordpress添加购买按钮
  • 个人现在可以做哪些网站企业所得税是多少
  • 网站建设招标信息科技企业网站建设
  • 怎样弄网站站长工具综合查询