线程总结

CPU运行原理

进程
  • 即每个应用程序启动后形成的进程,分配内存,硬盘资源给进程
线程
  • 每个进程实际是靠线程进行运行的,不能独立存在,必须依托于进程
  • 最小单位时间内可并行线程数量=cpu的核心组
  • 单位时间内可消化的进程数量即为并发数量
CPU时间片轮转
  • CPU多核时候,在进行任务调度处理时候,需要进行线程间的切换
  • 切换线程的时候需要进行原有线程的数据保留,方便下次进入是进行数据获取,所以会有性能开销
  • 所以在实际开发过程中结合实际情况避免此情况

Thread 方法

线程的启动方式
 class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }
class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

ThreadLocal(Sping 事务实现)

  • 线程的变量池,不受其他线程的影响
内存溢出情况 ThreadLocal
  • 在ThreadLocal源码中采用

线程共享协作 volatile

  • 线程在频繁切换调度时候,由于CPU的缓冲区数据还未写入到内存中导致有时无法获取正确的预期结果,volatile关键字进行变量修饰就是为了解决这个问题
  • 线程中的变量协作,使用 volatile关键字修饰的变量可在线程中获取最新结果

引用

强引用 -> 软引用 -> 弱引用 -> 虚应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值