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

NET网站开发程序员招聘百度指数的网址

NET网站开发程序员招聘,百度指数的网址,在哪里建网站比较好,为学校网站做网站推广策划书文章目录 一、Synchronized 锁二、ReentrantLock 锁三、两阶段终止阶段一:通知终止阶段二:响应中断 四、线程池为什么要使用线程池?如何创建线程池?ExecutorsThreadPoolExecutor 线程池的基本参数 五、线程池处理任务的流程 一、S…

文章目录

  • 一、Synchronized 锁
  • 二、ReentrantLock 锁
  • 三、两阶段终止
    • 阶段一:通知终止
    • 阶段二:响应中断
  • 四、线程池
    • 为什么要使用线程池?
    • 如何创建线程池?
      • Executors
      • ThreadPoolExecutor
    • 线程池的基本参数
  • 五、线程池处理任务的流程


一、Synchronized 锁

synchronized 是 Java关键字,用于修饰方法或代码块,属于重量级锁,主要是在多线程环境下实现对共享资源的互斥访问。
基本使用

public class SynchronizedExample {public synchronized void method1() {// 修饰实例方法,锁的是当前对象实例}public static synchronized void method2() {// 修饰静态方法,锁的是当前类的 Class 对象}public void method3() {synchronized (this) {// 代码块锁,锁的是当前对象}}
}

synchronized 可以保证数据的可见性和原子性,支持可重入和自动释放锁,但是不支持超时锁和中断等操作。


二、ReentrantLock 锁

ReentrantLock 是 JDK 1.5 引入的可重入锁,属于轻量级锁,相比 synchronized 增加了超时、中断、公平锁等高级功能。
基本使用

public class ReentrantLockExample {private final ReentrantLock lock = new ReentrantLock();public void method() {lock.lock();try {// 临界区} finally {lock.unlock(); }}
}

ReentrantLock 支持可重入、可中断、超时机制和条件变量,但是加锁需要手动释放,否则可能造成死锁。


三、两阶段终止

两阶段终止模式: 是指优雅地中止线程的方式。

阶段一:通知终止

线程通过 interrupt() 设置中断标志,告知目标线程终止。

阶段二:响应中断

线程检测到中断标志(或抛出中断异常),执行清理工作后安全退出。

class Main extends Thread {public void run() {while (!Thread.currentThread().isInterrupted()) {try {Thread.sleep(1000);} catch (InterruptedException e) {break; // 退出循环}}}}

四、线程池

为什么要使用线程池?

  • 提高响应速度
  • 减少资源消耗
  • 易于管理线程

如何创建线程池?

Executors

  1. 无限线程数的线程池
ExecutorService threadPool = Executors.newCachedThreadPool();
  1. 固定线程的线程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
  1. 单一线程的线程池
ExecutorService threadPool = Executors.newSingleThreadExecutor();

ThreadPoolExecutor

ExecutorService pool = new ThreadPoolExecutor(2,5,10,TimeUnit.SECONDS,new ArrayBlockingQueue<>(10),Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy()
);
pool.execute(() -> {System.out.println(Thread.currentThread().getName() + " 执行任务:");});
pool.shutdown(); 

线程池的基本参数

ThreadPoolExecutor(int corePoolSize,      // 核心线程数int maximumPoolSize,   // 最大线程数long keepAliveTime,    // 空闲线程存活时间TimeUnit unit,         // 时间单位BlockingQueue<Runnable> workQueue, // 任务队列ThreadFactory threadFactory,       // 线程工厂RejectedExecutionHandler handler   // 拒绝策略
)

五、线程池处理任务的流程

在这里插入图片描述

  1. 如果当前线程数 < 核心线程数,则创建一个线程执行任务。
  2. 如果核心线程数 <= 当前线程数 < 最大线程数并且阻塞队列未满,则线程进入阻塞队列等待。
  3. 如果阻塞队列已满但是当前线程数 < 最大线程数,则创建一个线程执行任务。
  4. 如果当前线程数等于最大线程数,则根据拒绝策略处理该线程。
http://www.dtcms.com/wzjs/385270.html

相关文章:

  • 如何在国内做网站查域名网站
  • 网站建设是什么意思西安楼市最新房价
  • 潍坊企业网站建设免费搭建网站的软件
  • 微信网站建设报价短视频营销的特点
  • 网站建设内容是经营项目吗柳州今日头条新闻
  • 做网站实现自动生成pdfseochan是什么意思
  • 网站建设上机考试题目建设网站制作公司
  • 网站开发的工作流程免费引流推广方法
  • 哪个行业最喜欢做网站seo怎么优化网站排名
  • 晋城网站建设开发百度网盘帐号登录入口
  • 南京百度网站建设竞价培训课程
  • 定制开发电商网站建设多少钱北京seo如何排名
  • wordpress php 采集seo技术经理
  • 南京 网站备案免费永久个人域名注册
  • 乐清建网站哪家好上海seo公司哪个靠谱
  • 腾讯云建设网站百度链接提交
  • 网站模板下载湖南岚鸿网站成都网站建设seo
  • 常用开发工具seo排名快速
  • 昆明驿站网站建设软文外链购买平台
  • 投资理财网站开发如何进行搜索引擎优化 简答案
  • 做网站需完成的软件重庆网页优化seo
  • 帮我注册一个账号免费seo视频教程
  • 建设干部学校网站首页国外免费建站网站
  • 网络网站制作快速seo关键词优化方案
  • dz网站标题网站链接提交收录
  • 杭州网站推广宣传seo入门版
  • 用什么开发手机网站百度推广四川成都地区服务中心
  • 蒙文网站开发seo学校培训班
  • 外贸独立网站设计关键词快速排名平台
  • wap网站是什么意思啊在线seo工具