3.10 为什么我们调⽤ start() ⽅法时会执⾏ run() ⽅法,为什么我 们不能直接调⽤ run() ⽅法?
这是另⼀个⾮常经典的 java 多线程⾯试问题,⽽且在⾯试中会经常被问到。很简单,但是很多⼈都会答不上来! n... » 阅读全文
这是另⼀个⾮常经典的 java 多线程⾯试问题,⽽且在⾯试中会经常被问到。很简单,但是很多⼈都会答不上来! n... » 阅读全文
两者最主要的区别在于:sleep()⽅法没有释放锁,⽽wait()⽅法释放了锁 。 两者都可以暂停线程的执⾏。... » 阅读全文
1. 认识线程死锁 线程死锁描述的是这样⼀种情况:多个线程同时被阻塞,它们中的⼀个或者全部都在等待某个资 源被... » 阅读全文
多线程编程中⼀般线程的个数都⼤于 CPU 核⼼的个数,⽽⼀个 CPU 核⼼在任意时刻只能被⼀个线程使⽤,为了让... » 阅读全文
Java 线程在运⾏的⽣命周期中的指定时刻只可能处于下⾯ 6 种不同状态的其中⼀个状态(图源《Java 并发编... » 阅读全文
并发编程的⽬的就是为了能提⾼程序的执⾏效率提⾼程序运⾏速度,但是并发编程并不总是能提⾼程序运⾏速度的,⽽且并发... » 阅读全文
先从总体上来说: 从计算机底层来说:线程可以⽐作是轻量级的进程,是程序执⾏的最⼩单位,线程间的切换和调度的成本... » 阅读全文
并发:同⼀时间段,多个任务都在执⾏ (单位时间内不⼀定同时执⾏); 并⾏:单位时间内,多个任务同时执⾏。
从 JVM ⻆度说进程和线程之间的关系 1. 图解进程和线程的关系 下图是 Java 内存区域,通过下图我们从... » 阅读全文