摘要:
1、线程调度算法: 背景:计算机的CPU在任意时刻只能执行一条机器指令,每个线程只有获得CPU 的使用权才能执行指令。所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得CPU 的使用权,分别执行各自的任务。在运行池中,会有多个处于就绪状态的线程在等待CPU,JA VA 虚拟机的一项任务就是负 阅读全文
摘要:
调用start() 方法时会执行run() 方法,为什么我们不能直接调用 run() 方法? 学习或者复习多线程的时候有没有问过自己这个问题呢? 首先需要知道线程的几个状态以及多线程工作方式。 new 一个Thread,线程进入了新建状态,调用start() 方法,会启动一个线程并使线程进入了就绪状 阅读全文
摘要:
形成死锁的4个必要条件: 1、互斥条件:在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,就只能等待,直至占有资源的进程用毕释放。 2、占有且等待条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。 阅读全文
摘要:
在多线程的编程中,一般线程的个数都大于CPU核心的个数,但是一个Cpu核心在任意时刻只能被一个线程使用。为了让这些线程都能得到有效执行,CPU采用的策略是:为每个线程分配时间片并轮转的形式。当一个线程的时间片用完时就会重新处于就绪状态,让给其他线程使用,这个过程就属于一次上下文切换。 总的来说:当前 阅读全文
摘要:
进程:一个在内存中运行的应用程序,每个正在系统上运行的程序都是一个进程。 线程:进程中的一个执行单元,负责在程序里独立的执行。 备注:一个进程有一个或多个线程。 区别: 1、根本的区别:进程是操作系统资源分配的基本单位;线程是处理器任务调度和执行的基本单位; 2、包含关系:一个进程有一个或多个线程。 阅读全文