0
点赞
收藏
分享

微信扫一扫

uniapp APP端在线升级功能实现讲解——强制或可选升级,下载进度显示

快乐小鱼儿_9911 2023-06-17 阅读 84

转载请注明:https://blog.csdn.net/feather_wch/article/details/131198444


[202306132346]

文章目录

Java并发基本概念

  1. CPU耗时时间
  1. 进程是分配资源的基本单位,执行还是靠线程

  2. 并行和并发是指什么?

  1. 时间片轮转是什么?
  1. 高并发编程的意义和好处
  1. 线程数量的限制取决于哪几个方面?
  1. ThreadMXBean是什么?
  1. Thread和Runnable是什么?
  1. 阻塞和挂起的区别?
  1. 线程启动有几种方式?

线程状态

  1. 线程状态有哪些?
  1. running->ready
  1. running->blocked
  1. running->waiting/timedWaiting
  1. ReentrantLock的lock方法会进入阻塞状态吗?

死锁/活锁

  1. 死锁是怎么发生的?
  1. 如何避免死锁?
  1. 活锁是怎么产生的?

中断和停止

  1. interrupt、interrupted、isInterrupted区别?
  1. 线程如何停止?
  1. 为什么不能使用标志变量结束线程?
  1. JDK中线程是抢占式还是协作式?
  1. 线程捕捉到InterruptedException后该怎么处理?

守护线程

  1. 守护线程是什么?

  1. 不能给Integer等基本类型包装类加synchronized
  1. 线程的协作模板
// 等待模板sync(对象){
      while(条件不满足){
               对象.wait();    
      }
}
// 通知模板sync(对象){
      业务
      对象.notify/notifyAll();
}
  1. notify和notifyAll会释放锁吗?
  1. yield()对锁有什么影响?有什么用?
  1. 等待超时和连接池

ThreadLocal

  1. ThreadLocal是怎么实现的?
  1. ThreadLocal导致内存泄漏的原因?
  1. 怎么解决ThreadLocal内存泄露?
  1. 为什么ThreadLocal的key使用WeakReference?
  1. ThreadLocal一定是线程安全的吗?
  1. ThreadLocal和Handler中的内存泄漏有什么关联?

并发工具类

Fork/Join

  1. Fork/Join是什么?
  1. ForkJoin的使用
ForkJoinPool pool = new ForkJoinPool();        
// 支持泛型        
RecursiveTask<Integer> task = new RecursiveTask<Integer>() {            @Override            protected Integer compute() {                if(get() <= 0 ){                    return 0;                }else{                    RecursiveTask<Integer> left;                    RecursiveTask<Integer> right;                    return left.join() + right.join();                }            }        };        pool.invoke(task); // 同步        pool.submit(task); // 异步        pool.execute(task);// 异步        Integer result = task.join(); // 获得结果        // 没有返回值        RecursiveAction action = new RecursiveAction() {            @Override            protected void compute() {                // 计算处理            }        };

Semaphore

  1. Semaphore是什么?注意点

Exchanger

  1. Exchanger是什么?
  1. 需要线程执行任务后有返回值怎么办?

锁深入太久

CAS机制

  1. 有CAS为什么还需要Synchronized?
  1. volatile适合什么场景?

synchronized

ReentrantLock

线程池

  1. 为什么需要用线程池?
  1. 拒绝策略/缺省策略有哪几种?
  1. 提交任务有哪几种方法?
  1. shutdown shutdownNow的作用> 取消剩下任务/取消所有任务,中断当前任务。

  2. 如何合理配置线程数?

  1. 核心线程数如何判断
  1. 页缺失是什么?
  1. OkHttp线程池中线程数

阻塞队列

自我检查

  1. notify会释放锁吗?
  2. 实现一个生产者/消费者模型(wait+notify)
举报

相关推荐

0 条评论