带你搞懂Java多线程(一)

什么是多线程

  • 多线程也叫并发编程,那么在写多线程之前,我们先来了解一下并发编程的基础概念。
    ①CPU核心数和线程数的关系
    核心即CPU,多核就是将多个CPU集成到一个芯片内,每个处理器都是单独的,核心数和线程数是一比一的关系,Interl使用超线程技术,将一个物理CPU模拟成两个逻辑CPU核心数和线程数实现一比二
    即如果一个4核CPU使用超线程技术,就可以同时运行8个线程,未使用超线程技术的话,则同时运行4个线程。
    ②CPU时间轮转机制
    也叫RR调度,可以理解为将CPU的运行时间进行切片,每一个片当作一个操作系统
    ③什么叫线程,什么叫进程

    进程:操作系统在运行时分配的最小单位。
    线程:CPU调度的最小单位。
    进程>线程,线程依附于进程存在,同一个进程中的线程共享进程里的资源。
    进程和CPU没有任何关系。
    Linux 最多1000个线程数,Windows最多线程数2000。
    能不能指定CPU跑某个线程
    Java层不能,Linux层内核API可以通过C语言来指定。
    ④并行和并发
    并行,同时运行的线程数。
    并发,同一时间单位内执行任务的个数。
    ⑤高并发编程的意义、好处和注意事项
    充分使用CPU的资源,提高处理速度,模块化、异步化、简单化。
    注意安全问题,一个进程中的变量,进程中的所有线程都对它可以进行操作。线程是有数量限制的,如果超出限制会导致宕机,因为线程切换会将未处理完的资源放到内存中,如果过多放不下,就会宕机。
    带你搞懂Java多线程(二)

你可能感兴趣的:(带你搞懂Java多线程(一))