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

医药招商网站建设做招聘网站都需要什么手续

医药招商网站建设,做招聘网站都需要什么手续,wordpress 4.5.4,定制网站建设创意T1、【初级】线程和进程有什么区别#xff1f; #xff08;1#xff09;线程是CPU调度的最小单位#xff0c;进程是计算分配资源的最小单位。 #xff08;2#xff09;一个进程至少要有一个线程。 #xff08;3#xff09;进程之间的内存是隔离的#xff0c;而同一个…T1、【初级】线程和进程有什么区别 1线程是CPU调度的最小单位进程是计算分配资源的最小单位。 2一个进程至少要有一个线程。 3进程之间的内存是隔离的而同一个进程中的线程之间是共享内存的。 T2、【初级】线程的创建有哪几种方式 1继承Thread类重写run方法。 2实现Runnable接口重写run方法。 3实现Callable接口重写call方法结合Future创建线程。 4通过线程池创建。 T3、【初级】创建线程池的几种方式 1使用Executors工具类创建线程池 2直接使用底层线程池构造函数创建线程new ThreadPoolExecuto() T4、【中级】线程池的参数有哪些 // 五参创建public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueueRunnable workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), defaultHandler);}// 七参创建public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueueRunnable workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {//---}1corePoolSize 核心线程数 2maximumPoolSize 最大线程数 3keepAliveTime 空闲线程存活时间 4unit 空闲线程存活时间单位 5workQueue 工作队列 ArrayBlockingQueueLinkedBlockingQueneSynchronousQuenePriorityBlockingQueue 6threadFactory 线程工厂 7handler 拒绝策略 第一种拒绝策略是 AbortPolicy这种拒绝策略在拒绝任务时会直接抛出异常 RejectedExecutionException 属于RuntimeException让你感知到任务被拒绝了于是你便可以根据业务逻辑选择重试或者放弃提交等策略。第二种拒绝策略是 DiscardPolicy这种拒绝策略正如它的名字所描述的一样当新任务被提交后直接被丢弃掉也不会给你任何的通知相对而言存在一定的风险因为我们提交的时候根本不知道这个任务会被丢弃可能造成数据丢失。第三种拒绝策略是 DiscardOldestPolicy如果线程池没被关闭且没有能力执行则会丢弃任务队列中的头结点通常是存活时间最长的任务这种策略与第二种不同之处在于它丢弃的不是最新提交的而是队列中存活时间最长的这样就可以腾出空间给新提交的任务但同理它也存在一定的数据丢失风险。第四种拒绝策略是 CallerRunsPolicy相对而言它就比较完善了当有新任务提交后如果线程池没被关闭且没有能力执行则把这个任务交于提交任务的线程执行也就是谁提交任务谁就负责执行任务。这样做主要有两点好处。第一点新提交的任务不会被丢弃这样也就不会造成业务损失。第二点好处是由于谁提交任务谁就要负责执行任务这样提交任务的线程就得负责执行任务而执行任务又是比较耗时的在这段期间提交任务的线程被占用也就不会再提交新的任务减缓了任务提交的速度相当于是一个负反馈。在此期间线程池中的线程也可以充分利用这段时间来执行掉一部分任务腾出一定的空间相当于是给了线程池一定的缓冲期。 理解思路 队列已满并且超过最大线程数直接报异常队列已满并且超过最大线程数抛弃新添加的任务队列已满并且超过最大线程数抛弃最老的任务队列已满并且超过最大线程数交给提交任务的线程来执行 T5、【中级】多线程中常用的工具类有哪些 1CountDownLaunch让某一条线程等待其他线程执行完毕后再执行 2CycleBarrier希望多条线程准备就绪之后一起开始执行 3Condition当希望指定唤醒某条线程时使用 T6、【中级】线程池都有哪些类型 1缓存型线程池 ExecutorService executorService Executors.newCachedThreadPool();2固定长度线程池 ExecutorService executorService Executors.newFixedThreadPool(10);3可定时执行的线程池 ScheduledExecutorService executorService Executors.newScheduledThreadPool(10);4单线程化线程池 ExecutorService executorService Executors.newSingleThreadExecutor();理解思路 定长线程池变长线程池单线程池定时线程池 T7、【中级】线程的状态都有哪些 T8、【中级】synchronized和static synchronized区别 1synchronized是对象锁 2static synchronized是类锁 T9、【中级】synchronized与Lock有啥区别 1实现方式不同synchronized是Java语言内置的关键字而Lock是一个Java API。 2粒度不同synchronized锁的是整个方法或代码块而Lock可以只锁定代码的一部分可以灵活地控制加锁和解锁操作。 3可中断性不同synchronized在获取锁失败时会等待直到获取锁成功而Lock可以通过tryLock()方法尝试获取锁如果获取失败则可以终止等待。 4条件变量不同Lock提供了Condition接口来实现线程之间的协调而synchronized没有类似的概念。 5释放方式不同synchronized可重入即同一线程可以重复获取锁并解锁synchronized是自动释放锁。而Lock也可重入但需要手动管理锁的计数器Lock需要手动释放锁。 理解记忆 synchronized是java内置关键字自动释放锁可重入非公平Lock是接口手动释放锁可重入可公平也可以不公平默认是不公平 synchronized的底层原理是使用了操作系统的互斥对象mutex来实现的。 T10、【中级】start()和run()有啥区别 1start方法来启动线程真正实现了多线程运行。这时无需等待 run 方法体代码执行完毕可以直接继续执行下面的代码。 2通过调用 Thread 类的 start()方法来启动一个线程 这时此线程是处于就绪状态 并没有运行。 3方法 run()称为线程体它包含了要执行的这个线程的内容线程就进入了运行状态开始运行 run 函数当中的代码。 Run 方法运行结束 此线程终止。然后 CPU 再调度其它线程。 T11、【初级】wait()和sleep()有啥区别 1调用方式不同wait()是Object类的方法可以调用任何对象的wait()方法而sleep()是Thread类的静态方法只能调用当前执行线程的sleep()方法。 2执行的对象不同wait()会释放对象锁线程执行完wait()方法后进入等待池中只能被其他线程调用notify()或notifyAll()方法唤醒而sleep()不会释放对象锁线程暂停一段时间后会重新进入就绪状态由操作系统进行调度。 3使用方式不同wait()、notify()和notifyAll()通常用于相互协调的线程之间进行协作如线程A等待线程B的信号来进行操作而sleep()通常用于程序中对时间的控制如在执行某个操作时需要暂停一段时间后再继续执行。 4异常处理不同wait()和sleep()都可以抛出InterruptedException异常但是InterruptedException异常的含义不同。wait()方法在等待过程中如果线程被中断则会抛出InterruptedException异常而sleep()方法在睡眠过程中如果线程被中断则会清除中断标志位不会抛出InterruptedException异常。 理解记忆 sleep()是静态方法释放cpu但不释放锁阻塞到时间了就继续执行wait()是object对象的方法释放锁通过notify()唤醒 T12、【初级】notify()和notifyAll()有啥区别 1notify()随机唤醒一条线程 2notifyAll()唤醒全部的线程。 T13、悲观锁和乐观锁有啥区别 1并发控制策略不同悲观锁采用独占锁排他锁的方式在读写数据之前先获得锁以保证操作的原子性而乐观锁采用版本号或时间戳等方式实现数据版本控制在更新数据之前先检查版本号或时间戳是否一致以确保在多线程环境下对数据的并发访问正确。 2加锁开销不同悲观锁需要频繁的加锁和解锁造成了较大的加锁开销和系统资源浪费而乐观锁只需要在更新操作时进行版本号或时间戳的比较不需要进行加锁和解锁操作因此开销较小。 3适用场景不同悲观锁适用于多写少读的情况例如数据库的更新操作而乐观锁适用于多读少写的情况例如缓存中数据的更新。 4冲突处理方式不同悲观锁在获取锁失败时会进入等待队列等待锁的释放从而避免了数据的冲突问题而乐观锁在检查版本或时间戳失败时需要回滚事务或重新执行操作从而处理数据的冲突问题。。 理解记忆 悲观锁是重锁是真正使用了锁乐观锁是轻量级锁实际上没有使用锁而是通过CAS实现的 T14、join和CountDownLatch区别 1joinjoin()是线程对象的成员方法功能是等待调用join()的线程对象执行完毕才执行其它的逻辑 2CountDownLatch是一种灵活的闭锁实现它维护了一个计数器通过计数器控制一个或多个线程等待另一组事件发生具体控制方法是CountDownLatch调用countDown方法来递减计数器表示有一个事件发生了调用await在计数器为0之前保持阻塞。 3区别 - join()的阻塞原理是不停检查join()所属的线程对象是否存活也就是线程完全执行完毕如果存活则让调用join()的线程保持阻塞。 - CountDownLatch的阻塞原理是仅仅关注计数器是否为0若不为0才保持阻塞它并不关注持有计数器的其它线程是否完全执行完毕。 显然join()能控制阻塞的范围比CountDownLatch小且没有CountDownLatch那么灵活。 理解记忆 join是线程执行完了才唤醒CountDownLatch是一个计数器为0时才唤醒 T15、多线程有哪些特性 1原子性 2可见性保证了不同线程对这个变量进行操作时的可见性即一个线程修改了某个变量的值这新值对其他线程来说是立即可见的。 3有序性通过synchronized和lock来保证有序性 T16、什么是锁 锁就是在多线程环境下为保证共享资源健康、线程安全的一种手段。 线程操作某个共享资源之前先对资源加一层锁保证操作期间没有其他线程访问资源当操作完成后再释放锁。 T17、什么是死锁 死锁是指两个或两个以上的进程在执行过程中由于竞争资源或者由于彼此通信而造成的一种阻塞的现象若无外力作用它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁这些永远在互相等待的进程称为死锁进程。 T18、怎么避免死锁 1、避免一个线程同时获取多个锁如果必须使用多个锁必须使用相同的加锁顺序。 2、降低锁的使用粒度尽量保证一个锁只占用一个资源 3、尽可能使用定时锁例如使用lock.tryLock(timeout)来替代使用内部锁机制 T19、分布式锁实有哪些实现方案 1、基于数据库唯一索引 2、基于缓存Redismemcachedtair 3、基于Zookeeper T20、你都了解哪些锁
http://www.zqtcl.cn/news/437441/

相关文章:

  • 通州网站建设电话外贸订单网站推广
  • 余江县建设局网站福州外包加工网
  • 为网站网站做推广加强网络安全建设
  • dedecms 模版网站wordpress 10万并发
  • 衡阳企业网站排名优化深圳网站建设 联雅网络
  • 厦门网站建设案例做网站需要买多大空间
  • 查看网站被恶意镜像wordpress 添加文件权限设置
  • 基于php的网站开发流程图如何建设一个公众号电影网站
  • 2018年怎么做网站排名如何提升网站的收录量
  • 租电信服务器开网站为何要屏蔽网站快照
  • 广州建设网站技术企业咨询属于什么行业
  • 哪些网站容易做网站开发价格
  • 展览网站源码棋牌游戏软件开发
  • 网站开发业务ppt做网站如何放入图像
  • 专业做网站和小程序车载网络设计是干什么的
  • 运城网站建设兼职建设通网站武义巨合汪志刚
  • 广州网站建设公司排行个人介绍网页设计模板图片
  • 东莞营销网站建设多少钱wordpress开场动画
  • 网站建设问题及解决办法网站优化过度的表现
  • html5手机网站教程合肥企业网站营销电话
  • 公司网站引导页建设银行网站怎么登录密码忘了怎么办
  • iis7 网站打不开做兼职哪个网站好
  • 惠州网站制作网站iot物联网平台开发
  • 龙岩门户网站最新仿58同城网站源码
  • 简单的企业小网站南宁最新消息今天
  • 美橙表业手表网站公司推广渠道
  • 大连网站排名优化价格wordpress锚文字
  • 漯河网做网站南京市建设工程档案馆网站
  • 重庆可以建建网站的平台天眼查 企业查询官网
  • gta5单机买房子网站在建设免费建小程序网站